在片段着色器中,我从3D模型中读取了视图坐标轴系统中的法向量,以及从凹凸纹理中获取的凸块法线向量。 如果我想获得漫反射系数和镜面反射系数。难道我只是简单地加上这两个正常或做别的?如何用phong shading实现凹凸贴图
0
A
回答
1
即时使用的最常见的正常映射技术,需要预先计算切线和双切线每个顶点矢量,作为除了正常的向量。
之后,你有正常的,切线,副法线向量,为您创造一个矩阵(可以说TBN),以将来自视图空间到模型的切线空间。
所以(在顶点着色器)使用TBN矩阵将光向量和眼睛向量(Lambert漫射项和Phong反射所需的)转换为切线空间;例如(在片段着色器中),漫射项将是D = L dot N; (其中L是切线空间中的轻位置,N是从法线贴图纹理中提取的法向矢量)。
你可以找到详细的教程:here。
+0
这是一个双倍的,而不是一个副法师。你也可以用二维的“法线贴图”,而不使用顶点法线,但你总是需要一个正切。 – Jessy 2014-10-16 14:47:10
+0
是的,你说的没错,把它称之为比喻更为恰当。 – 2014-10-16 15:43:01
相关问题
- 1. 凹凸贴图上的iPhone相机
- 2. 3D图形:法线贴图与凹凸贴图?
- 3. 图形中的凸凹 - Mathematica
- 4. Three.js中程序生成的凹凸或高光贴图?
- 5. 凹凸+ OpenStreetMap错误
- 6. 如何将凹凸贴图正常与真正的正常组合?
- 7. 如何NSKeyedUnarchiver与多块来自凹凸?
- 8. 平滑Zedgraph线图无“凹凸”
- 9. 凹面实现
- 10. 不使用`CURRENT_PROJECT_VERSION`凹凸版本号
- 11. 如何检查多边形是凹或凸?使用openGL
- 12. 如何在android中制作凹凸应用程序?
- 13. 如何实现凸优化包?
- 14. Realm/iOS:UICollectionView凹凸滚动性能
- 15. 凹凸类别上的方面barplot
- 16. 做一个输入从右凹和从左凹凸起
- 17. 将凹凸进给到numpy根
- 18. imagettftext凹凸不平的空间
- 19. 如何绘制控制的圆形凸起和凹陷边缘?
- 20. 在ggplot凹凸图上更改文本大小
- 21. 需要一些帮助凹凸Api发送图像
- 22. 使用GLSL实现立方体贴图
- 23. 如何使用css3实现图像贴纸(色带)
- 24. 用CSS边框防止奇怪的'凹凸'
- 25. 使用带电晕sdk或trigger.io的凹凸sdk
- 26. 在流星1.3上使用npm + angular1(凹凸!)
- 27. Raytracing/Phong
- 28. 将凹多边形分解为凸多边形
- 29. Android的凹凸阿比网络上的主线程异常
- 30. CS6 - Actionscript 3.0碰撞,点和缺乏凹凸
这很大程度上取决于您如何从凹凸纹理计算法线。当您沿纹理的x轴和y轴读取深度值并计算导数以得到法线时,您必须将计算的法线从切线空间转换为模型空间,并在那里使用它而不是对象的法线。 当您已经沿着模型空间计算了导数时,您可以简单地替换该对象的法线而无需进一步转换。 – BDL 2014-10-16 10:56:59