Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我的法线插值透视正确吗_C++_3d_Rendering_Renderer - Fatal编程技术网

C++ 我的法线插值透视正确吗

C++ 我的法线插值透视正确吗,c++,3d,rendering,renderer,C++,3d,Rendering,Renderer,我正在尝试实现一个软件渲染器 看起来是这样的,看来我的插值法线不是透视正确的 我使用扫描线转换并通过以下步骤计算法线: 假设我们现在正在绘制线AB(AB在屏幕空间中具有相同的y值) 通过插值上顶点和下顶点的法线来计算B的法线。(从屏幕空间的顶部和底部检索Alpha和Beta值) 计算A是类似的 画线AB。通过插值A和B的法线来计算碎片的法线 计算光贡献 如果我做错了,如何进行正确的插值?texcoord的计算方法与正常情况相同,它“看起来”比正常情况更好。但这也可能是错误的

我正在尝试实现一个软件渲染器

看起来是这样的,看来我的插值法线不是透视正确的


我使用扫描线转换并通过以下步骤计算法线:

假设我们现在正在绘制线AB(AB在屏幕空间中具有相同的y值)

  • 通过插值上顶点和下顶点的法线来计算B的法线。(从屏幕空间的顶部和底部检索Alpha和Beta值)
  • 计算A是类似的
  • 画线AB。通过插值A和B的法线来计算碎片的法线
  • 计算光贡献


  • 如果我做错了,如何进行正确的插值?

    texcoord的计算方法与正常情况相同,它“看起来”比正常情况更好。但这也可能是错误的