【发布时间】:2018-12-02 09:12:31
【问题描述】:
一些上下文:我通过为每个图块(仅包含几个 tris)创建一个 Geom 来动态生成一些基于图块的图形,然后将所有 Geom 组合成一个用于整个地图的 GeomNode。
根据panda3d docs,GeomNode 的用途之一是能够更改单个 Geom 的纹理。但是,它没有说明如何执行此操作。
在 Geom 本身上调用 set_texture 不起作用(可能是因为 RenderState 在 GeomNode 中,而不是在 Geom 中)。我可以用geom_node.get_geom_state(n)得到第n个Geom对应的RenderState,然后用geom_node.set_geom_state(n, state)再次设置它,但我不知道如何改变RenderState以便它应用纹理,从API参考它看起来很复杂。
如何更改 GeomNode 中单个 Geom 的纹理(如果答案是“将每个 Geom 放入其自己的 GeomNode”,那么是否有理由让每个 GeomNode 拥有多个 Geom)?
【问题讨论】: