初学者,法线方向的问题

发布于

画三角形的时候, 三个顶点加上顺时针,已经能决定这三个点的法向了,为什么还要传法线进去呢?

4
评论 3
收藏
  • o果蝇o
    o果蝇o
    三角面片用于处理光照的法线方向不一定垂直于这个平面。比如说一面凹凸不平的墙,在游戏引擎中有可能是平面的一些三角形,然后里面的凹凸从法线贴图传入,实际的位置由三角形的顶点决定,但光线的反射方向由这些法线决定
    2
  • mall
    可能希望法线不一定和三角片垂直?
    1
  • Jarmony
    Jarmony
    画三角形的时候我们是在哪里画?屏幕上。 用到几个参数? 只有 x , y。 z用于是否可见。 简单的说,你拿到的三角形是经过了 MVP变换 并且 经过 viewPort变换后的三角形。在这里计算法向量是没有任何用处的。 法向量对于光线追踪或者光栅化光照模型的颜色计算非常重要。 以Bling_phong为例,用到法向量的时候,法向量处在camrea space。 计算三角形内某一点的颜色,使用的坐标也在 camrea space。光源也在camrea space。 总结: 你拿到的一个三角形,对于屏幕里三角形里的某个点,通过 z_buffer 算法判断是否可见。可见的话就转到 camrea space 里进行着色,算出的颜色放到屏幕上。 建议观看Games101 以及作业3 render.cpp。 引用: 1. fundamentals of computer graphics-5th 第八章 Viewing 2. Games101 7-9 3. Games101 作业三 render.cpp
    2