pandamap渲染在panda3d python中

时间:2014-08-03 11:26:09

标签: python textures panda3d

我似乎在将一个立方体贴图图像渲染到panda3d中的立方体上时出现问题。似乎我的图像似乎偏向右下顶点以创建彩色但不幸的不需要的设计:

enter image description here

我创建立方体并尝试渲染立方体贴图的代码:

from direct.showbase.ShowBase import*
from panda3d.core import*

import random

class myapp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        self.cube=self.loader.loadModel("cube.egg")
        self.tex = loader.loadCubeMap('face_#.jpg')

        self.cube.setTexture(self.tex)


        for i in range(50):
          self.placeholder = self.render.attachNewNode("Placeholder")
          self.placeholder.setPos(random.randint(1,100), random.randint(1,100),random.randint(1,100))
          self.cube.instanceTo(self.placeholder)

        self.cube.reparentTo(self.render)

app=myapp()

app.run()

1 个答案:

答案 0 :(得分:2)

默认情况下,将根据分配给模型的U,V,W纹理坐标集应用立方体贴图。常规U,V坐标不适合显示立方体贴图,因为它们缺少W坐标,因此会在某些面上显得模糊。在建模程序中为模型分配立方体贴图坐标并不常见(但可能) - 相反,通常使用自动纹理坐标生成,其中法线向量或其某些变换版本用于生成立方体贴图的适当坐标取样

在Panda3D中,可以使用setTexGen功能完成此操作。 Panda3D可以通过多种方式生成立方体贴图坐标,具体取决于立方体贴图的类型(例如,它是反射立方体贴图还是静态贴图等)。例如:

        self.cube.setTexGen(TextureStage.getDefault(), TexGenAttrib.MEyeCubeMap)

更多信息可在相应的手册页上找到: https://www.panda3d.org/manual/index.php/Automatic_Texture_Coordinates https://www.panda3d.org/manual/index.php/Environment_Mapping_with_Cube_Maps