C# 列出三角形内像素的坐标
我正在用C#和XNA做一个游戏,我试图想出一种方法来渲染大规模地形,而不需要使用大量内存或通过硬编码到XNA中的多边形限制 到目前为止,我的解决方案是创建一个巨大的heightmap,并在游戏开始时在初始化阶段将该heightmap加载到内存中。然后,仅生成离摄影机最近的地形。这是通过投影一个三角形来实现的,该三角形的顶点是角色,其他两个端点延伸到角色查看区域的侧面。然后,高度贴图上三角形内部的所有像素都被渲染并绘制到游戏中,从而只渲染所看到的内容 问题是,我已经成功地找到了三角形的三个顶点(我想,在获得地形渲染之前无法进行测试)。现在,我需要为三角形中的每个像素找到一个坐标列表-仅限整数,因为我只需要一个像素列表来渲染 我知道这听起来有点混乱,所以这里是要点: 我有一个图像,我在图像上投射一个三角形。关于那个三角形我只知道三个顶点。我需要三角形内的像素列表 我已经在谷歌上搜索了大概20分钟了,我想我应该继续在这里发布一些东西,因为我尝试做的事情并不那么普遍。如果我找到答案,我一定会把它贴在这里 但在那之前,有人能告诉我如何做到这一点吗 编辑:请给我一个公式。如果你能提供一个公式或算法,以及一个解释,那就太完美了 编辑:我发布了一个新问题,因为我放弃了这种渲染大型地形的方法。问题是。从这里开始:C# 列出三角形内像素的坐标,c#,math,xna,C#,Math,Xna,我正在用C#和XNA做一个游戏,我试图想出一种方法来渲染大规模地形,而不需要使用大量内存或通过硬编码到XNA中的多边形限制 到目前为止,我的解决方案是创建一个巨大的heightmap,并在游戏开始时在初始化阶段将该heightmap加载到内存中。然后,仅生成离摄影机最近的地形。这是通过投影一个三角形来实现的,该三角形的顶点是角色,其他两个端点延伸到角色查看区域的侧面。然后,高度贴图上三角形内部的所有像素都被渲染并绘制到游戏中,从而只渲染所看到的内容 问题是,我已经成功地找到了三角形的三个顶点(我
这里没有提到的一个非常重要的问题是边界上的像素化问题。我当然不想阻止你去尝试和享受乐趣,但是当一个点(或其中的一个集合)位于相机平台内时,计算的数学可能会更快/更容易(不仅仅是因为现有的基础设施可以提供帮助)。如果你真的对大型地形的高性能渲染感兴趣,你可能想花一些时间研究诸如实例化和公告牌之类的主题。@lzcd是的,我现在对几乎任何东西都很开放。我会看看并研究实例化和公告牌,看看是否有机会让它们发挥作用。因为玩家可能会快速转向,你必须在每一帧的视锥中发送所有的高度数据,这将占用相当多的带宽。我想你最好将你的地形分割成块,将离玩家最近的块加载到GPU上,然后随着玩家的移动在背景中输入新的块。如何你的高度图有多大?你希望玩家能看到多少(360°视角)立刻?@Andrew透视矩阵是45度。至于距离,用户应该能够在高度图上看到512个像素远,这意味着在游戏中可以放大5倍到2500个。恐怕我不知道你的高度图有多大,或者说是可见区域。你能用绝对数目的多边形来描述它吗?