我在整合转换方面遇到了麻烦。无论出于何种原因,一切都不会像我认为的那样进行,但说实话 - 来回的所有转变让我感到头晕目眩。
正如我到处读到的那样(尽管明确的解释很少见,imho),转换的主要算法如下:
根据我的理解,这应该可以解决问题。当我尝试计算光照时,我很确定我的问题在于,因为初始交点和光照算法都使用相同的函数(obj.getIntersection()
)。但话说回来,我不知道。 :(
您可以在此处阅读部分代码:
main.cpp,scene.cpp,sphere.cpp,sdf-loader.cpp
如果您需要更多信息来帮助我,请告诉我 - 请帮助我! ;)
编辑:
我做了一些结果,也许有人“看到”(通过结果)我可能错了:
未转化的场景:
球体缩放(2,4,2):
框翻译(0,-200,0):
球体翻译(-300,0,0):
球体x旋转(45°):
答案 0 :(得分:0)
一般来说,对于计算机图形学的转换,我建议你去看看scratchapixel.com,尤其是这一课:
http://scratchapixel.com/lessons/3d-basic-lessons/lesson-4-geometry/
和这一个,你可以看到变换(矩阵)如何用于变换光线和物体:
如果您还不知道这个惊人的资源,我建议您使用它,也许在您的大学传播这个词。你的老师应该向你指出。