rendering - 重心坐标纹理映射

标签 rendering coordinates textures rasterizing

我想以正确的视角映射纹理以进行 3D 渲染。我使用重心坐标来定位三角形面上的点。简单的仿射变换给了我那个标准的、看起来很奇怪的结果。这就是我为了纠正我的观点所做的,但它似乎只会让扭曲变得更大:

三个三角形顶点v1 v2 v3

顶点坐标为 v_.x v_.y v_.z

纹理坐标为v_.u v_.v

顶点对应的重心坐标为b1 b2 b3

我正在尝试获取正确的纹理坐标 U 和 V

z=b1/v1.z + b2/v2.z + b3/v3.z

U=(b1*v1.u/v1.z + b2*v2.u/v2.z + b3*v3.u/v3.z)/z

V=(b1*v1.v/v1.z + b2*v2.v/v2.z + b3*v3.v/v3.z)/z

这应该有效,不是吗?为什么这不起作用?

编辑:此页面上的响应看起来很有用,但我不确定 w 坐标是什么。也许有人可以解释一下,这也可能解决我的问题。 http://www.gamedev.net/topic/593669-perspective-correct-barycentric-coordinates/

注意:我的标签一开始都是错误的。现在这个问题已经解决了。

最佳答案

好吧,这个问题我确实自己解决了。我除以屏幕空间中的 z 坐标。解决方案是除以齐次 w 坐标。

好吧,这花了一段时间才弄清楚。

关于rendering - 重心坐标纹理映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12360023/

相关文章:

objective-c - 交错的 VBO 导致 glDrawArrays() 错误

opengl - 我可以通过仅渲染几何体两次来执行 MSAA 来实现延迟渲染吗?

OpenGL:重用具有不同参数的相同纹理

pdf - Grails 2.4插件渲染会跳过非拉丁字符并返回空白pdf文件

audio - WASAPI呈现保存的音频文件

使用 wasd 键更改 x 和 y 值的 C 程序

java - 在java中获取组件的坐标

android - android中的 Canvas 在不同设备上是成比例的

android - 半透明纹理在不同的安卓手机上看起来不同

cocoa - 使用 Alpha 渲染纹理的问题