查看: 1192|回复: 4

关于凸凹贴图中的切线获取

[复制链接]

该用户从未签到

发表于 2011-8-22 22:12:09 | 显示全部楼层 |阅读模式
flysky视频教程中有个示例,介绍凸凹贴图的实现。在顶点着色器中,需要引入顶点切线属性,构建一个新的坐标系。如下,
  1. attribute vec3 Tangent;
复制代码

我按照示例编写程序,而平面并没有着色效果。经查,怀疑,没有获取切向量,因为把切向量预设为vec3(0,1,0)【因为平面法线为(0,0,1)】,就会有着色。
示例中所用模型为ScreenAlignedQuad.3ds, 我转换成osg格式,发现模型中也并无切向量设置,主程序中也没有设置。
但是,视频教程示例中为什么就会有着色效果,而对于凸凹贴图实现来说,切线到底该怎样设置?是怎样获取的? 请教大家,谢谢。

该用户从未签到

发表于 2011-8-23 02:07:58 | 显示全部楼层
看看凹凸贴图的原理教程吧,OpenGL的范例很多。
但是真正能理解切线向量的人不多。

该用户从未签到

 楼主| 发表于 2011-8-23 21:34:46 | 显示全部楼层
回复 2# sky11811

这位朋友是否可以说的更详细些?
看了一下osg3.0中,osgFX包中的BumpMapping实现,在prepareGeometry()方法中,根据几何体顶点和法线生成并绑定了切线属性,这应该是正常情形。但视频教程中的实例,我就搞不明白,切线来自哪里。
这个Tangent-space的构建是实现凸凹贴图的基础,还是希望大家多多指教,谢谢。

该用户从未签到

发表于 2011-8-23 22:38:45 | 显示全部楼层
模型当然没有切向量属性,这个应该是在着色器程序里面自己计算的吧

该用户从未签到

发表于 2011-8-24 09:25:51 | 显示全部楼层
可以自己计算,也可以用osgUtil::TangentSpaceGenerator自动计算
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表