- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这与另一个问题(那里的图像)中描述的问题有关:
Opengl shader problems - weird light reflection artifacts
我有一个 .obj 导入器,它创建一个数据结构并计算切线和双切线。这是我的对象中第一个三角形的数据:
我对切线空间的理解是法线从顶点向外指向,切线与法线向量垂直(正交?)并指向纹理中正 S 的方向,而双切线则垂直于两者。我不确定你怎么称呼它,但我认为这 3 个向量形成了看起来像旋转或变换的 x、y、z 轴的东西。它们不会是 3 个随机方向的向量,对吗?
我的理解也是:法线贴图中的法线提供了一个新的法线向量。但是在切线空间纹理贴图中,rgb 编码法线和每顶点法线之间没有内置方向。因此,您可以使用 TBN 矩阵来弥合差距并将它们放在相同的空间中(或在正确的空间中获得照明)。
但是后来我看到了对象数据...我的结构有 270 个顶点,所有顶点的切线 Y 都为 0。切线数据是否正确?这些切线是否像顶点法线空间一样?或者他们只是看起来完全错误?或者我对它是如何工作的以及我的数据是否正确感到困惑?
为了更接近解决我在另一个问题中的问题,我需要确保我的数据是正确的,以及我对切线空间照明数学如何工作的理解。
最佳答案
切线和双切线向量指向纹理坐标的 S 和 T 分量的方向(U 和 V 对于不习惯 OpenGL 术语的人)。所以切线向量指向 S,双切点指向 T。
所以是的,这些不必与法线或彼此正交。它们遵循纹理映射的方向。实际上,这就是它们的目的:允许您将法线从模型空间转换到纹理空间。它们定义了从模型空间到纹理空间的映射。
如果该顶点处的 S 和 T 分量是正交的,则切线和副切线将仅相互正交。也就是说,如果纹理贴图没有切变。虽然大多数纹理映射算法会尽量减少切变,但它们无法消除它。所以如果你想要一个精确的矩阵,你需要一个非正交的切线和双切线。
关于math - 在 TBN 矩阵中,法线、切线和双切线向量总是垂直吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433917/
RT,我有两个 avi 文件, A.avi: fps 30 tbr 30 tbn 30 tbc 30. B.avi: fps 2 tbr 2 tbn 2 tbc 2. 问题是如何在B.avi上设置相同
我正在尝试从网格的 segmentation 计算法线贴图,有 2 个网格,一个 UV 展开的基础网格,其中包含四边形和三角形,以及一个 segmentation 网格,仅包含四边形。 假设我有一个四
我正在 CPU 中使用光栅化和深度缓冲构建一个渲染器,现在我已经包含了法线贴图。一切正常,如下图所示: 问题是,即使它有效,我也不明白为什么!实现与我的想法相反。这是获取每个片段法线的代码: cons
我认为我们可以在顶点着色器和片段着色器中计算TBN矩阵。 // calculate in vs varying mat3 vTbnMatrix; void main() { vec3 n = no
以下是原始视频的信息: Metadata: major_brand : mp42 minor_version : 0 compatible_brands: iso
这与另一个问题(那里的图像)中描述的问题有关: Opengl shader problems - weird light reflection artifacts 我有一个 .obj 导入器,它创建一
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
使用 ffmpeg,我想转换一个视频文件,使其视频流变化如下: 当前视频流:Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv4
我正在 OpenGL 中实现 SSAO,遵循本教程:Jhon Chapman SSAO 基本上,所描述的技术使用沿片段法线定向的半球核。然后将样本的 View 空间 z 位置与其屏幕空间深度缓冲区值进
我正在使用以下代码录制带有图像的实时音频流: /usr/bin/ffmpeg -re -loop 1 -framerate 25 -i /var/www/html/slowwmo-images/sjw
我正在为教程开发法线贴图实现,出于教学目的,我想将 TBN 矩阵传递给片段着色器(从顶点着色器),这样我就可以将切线空间中的法线 vector 转换为世界 -照明计算的空间。法线贴图应用于二维平面,其
我是一名优秀的程序员,十分优秀!