gpt4 book ai didi

c++ - OpenGL,如何创建 "bumpy Polygon"?

转载 作者:IT老高 更新时间:2023-10-28 12:42:49 26 4
gpt4 key购买 nike

我不知道如何描述我所追求的,所以我画了一张照片来帮忙:

OpenGL question

我的问题是,在 OpenGL 中是否有可能在单个多边形上创建那些看起来像凹凸的像素的错觉,而不必诉诸于使用多个多边形?如果是的话,方法是什么?

最佳答案

我认为您正在寻找的实际上是 Parallax mapping (或视差遮挡映射)。

演示:
http://www.youtube.com/watch?v=01owTezYC-w
http://www.youtube.com/watch?v=gcAsJdo7dME&NR=1
http://www.youtube.com/watch?v=njKdLvmBl88

Parralax 映射基本上是通过使用高度图来改变正在使用的纹理 UV 坐标来工作的。

视差的主要缺点是任何看起来在多边形“外部”的东西都会被剪裁(想想看 3D 电视上的图像),所以最好是缩进表面而不是伸出它(尽管您可以通过使多边形大于可见纹理区域来减少这种情况)。它也相当复杂,需要与其他着色器技术结合才能获得良好的效果。

凹凸贴图通过对法线使用纹理来工作,这使得灯光的阴影看起来是 3D 的,但它不会根据观察者的位置而仅改变阴影的 3D 数据。凹凸贴图对于 OP 的示例图像也相当无用,因为表面在不同高度处都是相同的角度,凹凸贴图依赖于表面角度的变化。您必须像 this 那样倾斜边缘.

置换贴图/曲面 segmentation 使用纹理来生成更多多边形,而不仅仅是 1 个多边形。

有一个视频比较所有 3 here

编辑:还有Relief mapping ,类似于视差。见 demo .有一个comparison video也是(它的质量有点低,但浮雕看起来提供了更好的深度)。

关于c++ - OpenGL,如何创建 "bumpy Polygon"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com