菜鸟教程小白 发表于 2022-12-12 16:12:04

ios - OpenGL ES(在 iOS 上):


                                            <p><p>我有一系列这种形式的标准 OpenGL 指令:</p>

<pre><code>glBegin(GL_TRIANGLES);
// ...
glNormal3fv(a); glVertex3f(a*r, a*r, a*r);
// ...
glEnd();
</code></pre>

<p>我希望在 iOS 上运行它们,因此必须将它们转换为 OpenGL ES。由于 OpenGL ES 不支持 glBegin() 或 glEnd(),因此我将 glVertex3f 调用封装到 GLfloat 顶点数组中,然后是 glDrawArrays() 调用。</p>

<pre><code>GLfloat vertices[] = {1,0,0, 0,1,0, ...};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
</code></pre>

<p>但是我不确定如何在这个 ES 版本中包含法线向量的规范(原始 glNormal3fv() 调用)。</p>

<p>有人愿意举例说明解决方案吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>看看 <code>glNormalPointer()</code>。它的工作方式与 <code>glVertexPointer()</code> 大致相同,但选项较少,因为法线总是有 3 个浮点组件。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - OpenGL ES(在 iOS 上):,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/5797916/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/5797916/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - OpenGL ES(在 iOS 上):