openGL之API学习(六十八)core profile、compatibility profile、forward compatibility

在OpenGL的发展历程中,总是兼顾向下兼容的特性,但是到了一定的程度之后,这些旧有的OpenGL API不再适应时代的需要,还有一些扩展并不是驱动一定要实现的扩展,这些被统一划入可选的Compatibility Profile;而由OpenGL规范规定必须支持的扩展,则是Core Profile,想要支持先进的OpenGL,相应的Core Profile扩展必须被实现。

OpenGL在渲染的时候需要一个Context,这个Context记录了OpenGL渲染需要的所有信息,可以把它理解成一个大的结构体,它里面记录了当前绘制使用的颜色、是否有光照计算以及开启的光源等非常多我们使用OpenGL函数调用设置的状态和状态属性。在OpenGL 3.0版本之前,OpenGL创建Context都是一致的,随着升级会新增一些内容(例如从OpenGL1.1升级到1.5,会新增一些状态变量或者属性,并添加一些设置这些内容的函数),整体上来说没有什么大的变化。但是从OpenGL 3.0开始,OpenGL为了摆脱历史的“包袱”,想要彻底的废弃掉之前的许多特性,但是无奈市面上已经有大量依赖OpenGL之前版本的代码,导致OpenGL维护小组的这一想法难以付诸实施,于是在OpenGL 3.1开始引入了OpenGL Context的一些分类,比如引入了CoreProfile等概念,之后随着版本发展到3.3,一切算是确定下来。

正是由于OpenGL的这一变化过程以及其间引入的各种概念,导致初学者学习OpenGL时非常的痛苦,本来OpenGL API对于一般开发者来说就是晦涩难懂,如今还引入这些内容真的是令开发者压力山大。

在OpenGL 3.0版本之前,所有的OpenGL Cont

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Unity API兼容级别是指Unity引擎与脚本编写语言之间的兼容性级别。Unity支持三种API兼容级别:.NET 2.0、.NET 2.0 Subset和.NET 4.x。不同的兼容级别会影响到脚本编写时所能使用的语言特性和API。一般来说,选择更高的兼容级别可以使用更多的语言特性和API,但也会增加一些额外的开销和限制。 ### 回答2: Unity API Compatibility Level(Unity API兼容级别)是Unity引擎的一个重要概念。Unity引擎是一款跨平台游戏引擎,不同平台的处理器架构和操作系统会导致API的差异,因此为了确保开发者编写的代码能够在不同平台上正确运行,Unity引擎提供了不同的API兼容级别。API兼容级别是指代码的编译选项,用于控制编译器生成的代码所依赖的API版本。 Unity提供了三种API兼容级别: 1. .NET 2.0 Subset:兼容.NET 2.0框架的一个子集。在使用该兼容级别时,只能使用一些较早版本的API,因此代码库的可用性很小。如果您不需要使用最新的API,则可以考虑使用此兼容级别。 2. .NET 2.0:纯粹的.NET 2.0框架。这个选项包括所有.NET框架的API,但不包括后来的更新和新版本,这对那些只需要在较早的.NET框架上运行代码的用户非常方便。您可以使用此兼容级别来确保代码可以在较早版本的Windows操作系统上运行。 3. .NET 4.x Equivalent:用于兼容.NET 4.x的一个子集。在使用该兼容级别时,支持所有.NET框架API,包括较新版本和更新,但不支持.NET Core或.NET Standard。如果你想使用较新版本的C#,那么这是你最好的选择。 选择正确的API兼容级别对于游戏的性能和可用性至关重要。在项目开始之前,请确保选择正确的兼容级别。 ### 回答3: Unity API Compatibility Level是Unity中的一种设置,用于控制脚本与引擎的兼容标准。Unity API Compatibility Level可以设置为.NET 2.0、.NET 2.0 SubSet、、.NET 4.x、.NET Standard 2.0等级别,其中.NET 2.0是Unity的默认设置。 Unity适用的标准是Mono,而在.NET Framework中,Unity提供了一组类来访问引擎功能,这些类称为UnityEngine API。这些API是专门为Unity引擎开发的,并且不同版本的Unity使用不同版本的Mono,因此需要设置Unity API Compatibility Level才能为不同版本的Mono提供兼容性。 为了保证代码的兼容性和稳定性,Unity API Compatibility Level不应该随意更改,特别是在既有项目中。如果更改Compatibility Level会导致大量的更改和转化,而这些更改需要消耗大量时间和精力。但是,在新项目中,可以设置更高的Compatibility Level以享受更广泛的.NET API功能,并帮助提高代码质量和可维护性。 在使用Unity API Compatibility Level时,应该考虑以下因素: 1.代码的兼容性和稳定性,尽量避免改变Compatibility Level。 2.对代码的要求,选择.NET Standard 2.0级别可以给开发人员带来更广泛的API。 3.尽量遵循Unity API中的设计模式和规则,以避免代码污染和错误。 4.保持Unity引擎和Mono的兼容性,避免版本的冲突。 综上所述,Unity API Compatibility Level是Unity中重要的设置之一,它可以为Unity工程师和开发人员提供更高的灵活性和效率,但是应该谨慎地更改兼容级别以确保最好的代码质量和兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值