菜鸟教程小白 发表于 2022-12-13 00:32:11

ios - openGl ES 纹理渲染


                                            <p><p>我目前正在学习 Open GL ES 以构建 iOS 应用程序。我正在尝试向我的模型添加纹理但没有成功。我从</p>下载了一个示例项目

<p> <a href="http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial" rel="noreferrer noopener nofollow">link</a> </p>

<p>并且一直在研究它。我的问题是:当我原样运行项目时,我得到以下信息:</p>

<p> <img src="/image/aMrgX.png" alt="image with working texture"/> </p>

<p>你可以看到它是一个带有纹理的基本立方体。我决定将 .png 文件更改为不同的图像。但是当我这样做时,我遇到了:</p>

<p> <img src="/image/boaUs.png" alt="image not rendering texture"/> </p>

<p>我不知道为什么我的 .png 文件没有渲染到立方体?</p>

<p>这是我的纹理:
<img src="/image/Wro3M.png" alt="my texture"/> </p>

<p>和原文:
<img src="/image/HDaSs.png" alt="original"/> </p>

<p>只是为了确认我没有收到错误并且我没有对代码进行任何更改。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您使用非二次幂纹理,则不能使用 mipmap,您需要正确设置过滤。</p>

<p>过滤:</p>

<pre><code>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
</code></pre>

<p>夹具:</p>

<pre><code>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
</code></pre>

<p>但这有一个缺点,在 3D 对象上,如果距离太远,纹理质量会很差。因此,在这种情况下,请使用二次幂纹理并使用 mipmap。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - openGl ES 纹理渲染,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/14335873/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/14335873/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - openGl ES 纹理渲染