请教D3D关于2D地形的生成问题

时间:2023-02-07 23:24:06
我要用一个32×32的草皮纹理生成一个1024×1024大小的地图
那是不是意味着要写32个DrawPrimitiveUp()?

DrawPrimitiveUp(1)
DrawPrimitiveUp(2)
DrawPrimitiveUp(3)
....
DrawPrimitiveUp(32) ???


存在的问题:
1:如果用寻址模式,那要求要显示的纹理必须是32×32全部像素,而有时候,实际的纹理可能不是一个矩形,而是一个平行四边形,那就会有空余,这就无法使用寻址模式。。

2:即便使用寻址模式,那也是平均分布的,而有时候我们往往需要根据自己的排列顺序来生成地形。

6 个解决方案

#1


2D地形?  是想生成图片么?  还是说是3D地形?

#2


还是BATCH技术。你建立一块足够大的VB,把地形所有的块的顶点通通写进去,然后就一次DP就能画出整个地形了。
优点是批处理,速度快,缺点是所有块都必须为同一纹理。
楼主先别再问,自己好好琢磨。感觉你什么小问题都问,过于依赖论坛,有不爱动脑之嫌

#3


引用 2 楼 gamemagic 的回复:
还是BATCH技术。你建立一块足够大的VB,把地形所有的块的顶点通通写进去,然后就一次DP就能画出整个地形了。
优点是批处理,速度快,缺点是所有块都必须为同一纹理。
楼主先别再问,自己好好琢磨。感觉你什么小问题都问,过于依赖论坛,有不爱动脑之嫌


恩。
现在已经把整个地形编辑器写好了,实现了像魔兽争霸3的2D地形自动拼接生成以及地形文件的导出与读取。

#4


地形数据量过大的话还要LOD
“忽略远处的细节,且只画看得见的东西”

#5


引用 4 楼 gamemagic 的回复:
地形数据量过大的话还要LOD
“忽略远处的细节,且只画看得见的东西”


恩。对,2D也要考虑这个问题。

#6


学习要从一点一滴开始,不要图快,哈哈

#1


2D地形?  是想生成图片么?  还是说是3D地形?

#2


还是BATCH技术。你建立一块足够大的VB,把地形所有的块的顶点通通写进去,然后就一次DP就能画出整个地形了。
优点是批处理,速度快,缺点是所有块都必须为同一纹理。
楼主先别再问,自己好好琢磨。感觉你什么小问题都问,过于依赖论坛,有不爱动脑之嫌

#3


引用 2 楼 gamemagic 的回复:
还是BATCH技术。你建立一块足够大的VB,把地形所有的块的顶点通通写进去,然后就一次DP就能画出整个地形了。
优点是批处理,速度快,缺点是所有块都必须为同一纹理。
楼主先别再问,自己好好琢磨。感觉你什么小问题都问,过于依赖论坛,有不爱动脑之嫌


恩。
现在已经把整个地形编辑器写好了,实现了像魔兽争霸3的2D地形自动拼接生成以及地形文件的导出与读取。

#4


地形数据量过大的话还要LOD
“忽略远处的细节,且只画看得见的东西”

#5


引用 4 楼 gamemagic 的回复:
地形数据量过大的话还要LOD
“忽略远处的细节,且只画看得见的东西”


恩。对,2D也要考虑这个问题。

#6


学习要从一点一滴开始,不要图快,哈哈