gpt4 book ai didi

iOS5 和 OpenGL ES 2.0 最佳编译器

转载 作者:行者123 更新时间:2023-11-28 20:38:53 24 4
gpt4 key购买 nike

这是对问题的更新: iPhone GCC / LLVM GCC or LLVM? ...自问这个问题以来已经一年多了。

我对图形处理还很陌生,才刚刚开始学习 OpenGL ES。

我正在读这个: http://www.dpfiles.com/dpfileswiki/index.php?title=Black_Art_of_3D_Game_Programming%2C_Chapter_10:_3D_Fundamentals#Fixed_Point_Mathematics ...并且知道某些信息已过时。

本节中提到的限制是否仍然适用于 iPhone?

即使用定点数学仍然比浮点有显着改进吗?

我应该使用什么编译器来优化矩阵运算?

最佳答案

首先,作为I stated in answer to the question you've linked above , LLVM 通常在针对 iOS 时为编译后的代码提供更好的性能。 Apple 甚至从 Xcode 中删除了 GCC 作为编译器,因此您实际上别无选择。使用 LLVM。

其次,该文章中有关定点数学的陈述不适用于 iOS 设备上的 OpenGL ES 实现。这些设备中使用的 PowerVR GPU 被调整为使用浮点输入,在处理定点数据时实际上会降低性能。来自 Apple 的 OpenGL ES Programming Guide :

Avoid using the OpenGL ES GL_FIXED data type. It requires the same amount of memory as GL_FLOAT, but provides a smaller range of values. All iOS devices support hardware floating-point units, so floating point values can be processed more quickly.

The ARM processor in iOS devices processes floating-point instructions natively. Your application should use floating-point instead of fixed point math whenever possible. If you are porting an application that uses fixed-point operations, rewrite the code to use floating-point types.

我相信 PowerVR 文档(作为其免费 SDK 的一部分提供)也提到了这一点。

此外,您可能应该在 ARMv7 设备(iPhone 3GS 和更新版本)上启用 Thumb 构建并在 ARMv6 设备上禁用它,因为这会减慢后者的浮点计算速度,但不会减慢前者的速度,并且可以带来更好的性能在前一类设备上。

最后,在矩阵运算方面,如果您只想针对 iOS 5.0,则应该使用 GLKit 附带的新矩阵数学函数。那些使用 NEON 加速实现来进行快速矢量数学运算。您还可以自己推出或查找使用 Accelerate 框架或直接 NEON 计算的现有实现。

总而言之,在进行 OpenGL ES 渲染时,这些领域都不会成为您的瓶颈。使用 Instruments 和其他工具来查找应用程序中正在减慢渲染速度的真实区域。我提到的这些优化只会节省少量时间。

关于iOS5 和 OpenGL ES 2.0 最佳编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9416159/

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