1

我似乎在将立方体贴图图像渲染到 panda3d 中的立方体上时遇到问题。似乎我的所有图像似乎都发散到右下角的顶点以创建一个彩色但不幸的是不需要的设计:

在此处输入图像描述

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

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()
4

1 回答 1

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

于 2014-08-22T12:19:56.010 回答