openGL之API学习(一八四)如何实现GLSL ESSL的跨平台编译运行

本文探讨了如何实现GLSL ESSL shader在桌面和手机等不同平台的跨平台编译运行,主要面临的问题是各平台对SL版本支持的差异。解决方案包括寻找共同支持的版本或动态检测平台选择版本。osgEarth框架提供了相应支持,通过其Rex引擎能有效区分顶点和片段着色器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:写一份sl(shandering language)代码可以在桌面、手机等终端平台运行,不需要为不同平台写不同的代码

无法跨平台的原因:桌面和手机对sl的版本支持是不同的。如果要跨平台需要找到他们共同支持的版本,或者自动监测平台选择不同的版本。

比如:桌面可以支持120,手机就没有该版本,有的手机可以支持320 es

桌面不支持300,支持300 es

桌面不支持 120 es

手机不支持 120及120 es

手机支持100

桌面不支持100

着色器版本 桌面程序 Android程序
#version 100 不支持 支持
#version 110 支持 不支持
#version 120 支持 不支持
#version 120 es 不支持 不支持
#version 130 支持 不支持
#version 320 es 支持
#version 320 es compatibility 不支持

写一个shader需要考虑以下几个方面,否则很容易出错。

平台 版本 内置变量 函数


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值