iphone - 我在使用 GLshort 表示顶点和法线时遇到问题

标签 iphone opengl-es metadata vertex reducing

随着我的项目接近优化阶段,我注意到减少顶点元数据可以极大地提高 3D 渲染的性能。

最终,我仔细搜索并从 stackoverflow 中找到了以下建议。

Using GL_SHORT instead of GL_FLOAT in an OpenGL ES vertex array

How do you represent a normal or texture coordinate using GLshorts?

Advice on speeding up OpenGL ES 1.1 on the iPhone

简单的实验表明,将顶点和法线从“FLOAT”切换到“SHORT”并不困难,但令我困扰的是,当您将顶点缩小到原始大小(使用 glScalef)时,法线会成倍增加通过比例的倒数。对此的自然补救措施是在提交给 GPU 之前将法线与比例相乘。然后,我的短法线几乎变成了 0,因为比例因子通常小于 0。呃!

如何同时对顶点和法线使用“short”?我已经尝试了这个和那个大约一整天,但到目前为止我只能选择“带字节法线的 float 顶点”或“带法线 float 的短顶点”。

我们将非常感谢您的帮助。

最佳答案

你不能通过调用这个来标准化你的法线吗?

glEnable( GL_NORMALIZE );

这并不理想,因为归一化可能会对 GPU 造成一些影响,但这实际上取决于您的瓶颈是由将数据传递到 GPU 还是由 GPU 执行过多操作引起。与任何优化一样,您需要找出哪个可以提供更好的速度。我怀疑你可能会因为传递顶点数据而减慢速度,所以你会得到加速。

关于iphone - 我在使用 GLshort 表示顶点和法线时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832298/

相关文章:

iphone - 构建 XMLRPC.framework : Wrong Architecture?

iphone - 使用AVAudioPlayer播放的音频在iPhone模拟器中有效,但在设备中不起作用

android - Opengl 创建 FBO- 致命信号 11 错误

amazon-s3 - 有没有办法触摸() Amazon S3 中的文件?

postgresql - 物化 View 存储在postgresql的元数据中

audio - 无论如何,是否可以通过 HTML5 音频元素从 MP3 或 Ogg 的 Vorbis 评论中获取 ID3 元数据?

iphone - 网站在 iPhone 和 iPad 上都太宽

iphone - 如何横向显示一个 UIView?

ios - CVOpenGLESTexture 方法类型的官方文档在哪里?

iphone - iOS CVImageBuffer 使用 AVCaptureSessionPresetPhoto 从 AVCaptureSessionDataOutput 变形