![]() |
1
4
每个3D块(表示tileMap中的一个tile)都将被视为一个节点,并会导致巨大的性能问题, 我认为您的问题应该是如何在Scenekit中渲染性能良好的3D平铺贴图,因为imo Scenekit无疑是一种方法,并且可以防止这些巨大的性能问题。 对于初学者,如何创建平铺?如果使用内置原语,通过使用dae或obj文件中的平铺,甚至通过编程方式创建平铺,可以获得巨大的性能提高。 如果整个平铺都是相同的模型,则应仅添加一次,然后为所有其他平铺克隆该平铺: https://developer.apple.com/documentation/scenekit/scnnode/1408046-clone (注意,您必须创建材质的副本并将其指定给克隆,以防止其在所有平铺中共享)。 此外,通过将它们全部添加到单个父节点,可以创建一个所谓的扁平克隆,以将所有平铺合并到单个节点中。 https://developer.apple.com/documentation/scenekit/scnnode/1407960-flattenedclone 这大大减少了draw调用的数量。 如果速度不够快,另一种选择是以编程方式创建整个地图。也就是说,创建所有顶点并基于这些顶点创建一个顶点度量。 另一个可能非常快速的选项是使用4个顶点创建平面,然后使用着色器和置换贴图创建平铺贴图。 关于克隆和展平克隆的部分也适用于具有相同几何图形的建筑。 为了完整起见,如果这不明显,您应该设置 https://developer.apple.com/documentation/scenekit/scncamera/1436621-usesorthographicprojection 将摄影机的属性设置为true,以获得该等轴测外观。 |
![]() |
shirshamay · 并非3D立方体显示的所有侧面 9 月前 |
![]() |
MirceaKitsune · 获取从一个点到最近长方体的距离 11 月前 |
![]() |
Hadi Ayoub · 如何使JavaFX3DBox透明 1 年前 |
![]() |
John Marston · 如何创建三个角度相等的三维矢量? 1 年前 |
![]() |
Krystal · 如何在三维绘图中绘制多维数组? 1 年前 |
![]() |
yldbear77 · 如何使用assimp获取纹理文件? 1 年前 |
![]() |
nona · Pyrender中的世界到像素转换 1 年前 |
|
Dronius · Three.js光线投射不适用于移动对象 1 年前 |