gpt4 book ai didi

opengl - 如何在 OpenGL 中将多个纹理分配到单个网格中?

转载 作者:行者123 更新时间:2023-12-02 04:32:13 24 4
gpt4 key购买 nike

第一个例子:您可以采用一个巨大的岩石形状的网格,并在其上放置平铺的岩石纹理。现在,有些地方需要覆盖草纹理(或其他植被)。

另一个例子:通常,地形是由平铺纹理构建的。为了获得不那么“蒂莉”的外观,您可以在其上应用 4 倍大(或 16 等)的平铺纹理,这样您将获得一个漂亮的“随机”平铺纹理(参见UDK 的文档)。

Blender(3D 图形应用程序)基于 OpenGL,它允许您将多种 Material 分配给单个网格。

我如何在我自己的 OpenGL 应用程序中做到这一点?谢谢, 阿米尔

附:我正在寻找一个比用 tex a 渲染 50 个 tris 和用 tex b 渲染另外 3 个 tris 更好的解决方案。

最佳答案

您正在寻找的东西称为多重纹理。现代显卡具有多个纹理单元,每个纹理单元都可以采样不同的纹理。渲染岩石时,您可以为要渲染的每个纹理指定具有 UV 坐标的顶点。

在 OpenGL 中,您可以使用 glActiveTextureselect您的事件纹理单元,以便您可以将纹理绑定(bind)到它并在后续渲染中使用它。您的顶点将需要额外的纹理坐标对;您打算渲染的每个纹理一对。

进行多重纹理的现代方法是使用着色器(通常是 OpenGL 中的 GLSL)。加载每个纹理并将其绑定(bind)到不同的纹理单元,将着色器统一设置为您正在使用的纹理单元的值(0 表示纹理单元 0 等),对每个纹理进行采样,然后使用所需的混合函数进行混合以获得输出颜色。

关于opengl - 如何在 OpenGL 中将多个纹理分配到单个网格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196640/

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