GLSL和GLSL ES 2之间的差异
两个问题真的GLSL和GLSL ES 2之间的差异,glsl,opengl-es-2.0,Glsl,Opengl Es 2.0,两个问题真的 GLSL ES 2是一种完全独立的语言,还是GLSL的特殊版本 在“标准库”函数、语法和功能方面,它们之间有什么区别 我正在为一个针对Windows、Mac和iPad的应用程序编写着色器,我希望不必为每个着色器添加更多版本——无论如何,更简单的着色器 GLSL ES 2是一种完全独立的语言,还是GLSL的特殊版本 GLSL的每个版本最终都是一种“完全独立的语言”;有些甚至与以前的版本不向后兼容。然而,GLSL的ES变异更为严重 可以将其视为桌面GLSL的一个分支。请注意,六个版本前
main
及其各种代码、属性
定义、制服
等),并在其前面粘贴一个“序言”着色器字符串。序言将根据您编译的目的而有所不同
您的ES GLSL 1.00序言如下所示:
#version 100 //Must start with a version specifier.
#version 120
#define lowp
#define mediump
#define highp
您的桌面GLSL 1.20序言如下所示:
#version 100 //Must start with a version specifier.
#version 120
#define lowp
#define mediump
#define highp
也许还有其他一些明智的定义。这样,您的着色器就可以设置这些精度限定符,并且在使用桌面GLSL时,这些限定符只需#define
d即可
这很像C/C++中的平台无关编码,其中,您通常会有一些特定于平台的标题,这些标题会更改定义和/或有定义,您可以根据这些标题来调整代码。更简单地说,Opengl ES即Opengl嵌入式系统是为了在嵌入式设备(如手机)上运行而设计的。移动电话系统面临的问题与90年代的pc相同,即计算问题以及gpu架构的差异
- ImgTech PowerVR SGX-TBDR(TILEBASEDD)
- ImgTech PowerVR MBX-TBDR(固定功能)
- 手臂-瓷砖(小瓷砖)
- Qualcomm Adreno-瓷砖(大瓷砖)
- 肾上腺3xx-可以切换到传统
- glHint(GL\u BINNING\u CONTROL\u HINT\u QCOM、GL\u RENDER\u DIRECT\u TO\u FRAMEBUFFER\u QCOM) NVIDIA Tegra-传统