2011-08-31 99 views
4

是否有任何包装在OpenGL ES 2.0之上模拟OpenGL ES 1.1 API?我搜索了很多,但找不到任何实际的实现。OpenGL固定功能着色器实现

+0

虽然我不能指出这样一个包装,我建议你自己写一个这样的包装,只是为了训练。编写着色器来模拟固定功能流水线是了解更多关于固定功能概念如何真正起作用的绝妙练习,除非您意识到,模拟固定功能OpenGL ES 1.1 API不是最灵活或有效的使用方式OpenGL ES 2.0。 –

+0

如果您看看Opengl ES 2.0编程指南,他们会尝试实现固定功能流水线的部分功能。很快就可以看出,这不是一项简单的任务。 我真的不知道为什么你想要这个 - 为什么不使用OpenGL ES 1.1。我不知道任何2.0 GPU也不支持1.1 –

+3

WebGL仅支持OpenGL Es 2.0。我有一大堆我需要从OpenGL ES 1.1移植到2.0的代码。我不会改变大部分代码,而是会逐渐从ES 1.1仿真切换到2.0,这样我就可以运行测试并查看什么时候出现故障。 – abergmeier

回答

2

您可能会喜欢本教程:Recreating OpenGL's Fixed Function Pipeline using Cg。它在CG中,但与GLSL非常相似,只需进行一些调整,就可以将其转化为模拟Android上固定功能管线的着色器。

至于其他不赞成使用的函数,如glVertex *(),我会建议反对它(它已被弃用的原因)。另一方面,如果需要将一些软件从ES 1移植到ES 2,即使在这种情况下编写包装也不是很困难。

2

http://code.google.com/p/gles2-bc/

这个旨在模拟ES 1.1与ES 2.0着色器,不使用它自己,但会做!

+0

这主要是一个被遗弃的项目。 – abergmeier

+0

@LCID火并不意味着它不起作用......也不是让某人开始的基础...... –

2

看看JOGL。

大约有仿真从GLES 1.0固定管道的使用GLES 2.0一些软件包:

package javax.media.opengl.fixedfunc; 
package com.jogamp.opengl.util.glsl.fixedfunc; 
package jogamp.opengl.util.glsl.fixedfunc; 

从jogamp.opengl.util.glsl.fixedfunc.FixedFuncImpl类的Javadoc;

Composable pipeline, implementing the interface javax.media.opengl.GL2ES1 
Each method follows the call graph: 
* call prolog jogamp.opengl.util.glsl.fixedfunc.FixedFuncHook if available 
* call downstream javax.media.opengl.GL2ES2 if available and if no call to jogamp.opengl.util.glsl.fixedfunc.FixedFuncHook is made 

* Interface javax.media.opengl.GL2ES1 
* Prolog jogamp.opengl.util.glsl.fixedfunc.FixedFuncHook 
* Downstream javax.media.opengl.GL2ES2 

Sample code which installs this pipeline: 
    GL gl = drawable.setGL(new FixedFuncImpl(drawable.getGL().getGL2ES2(), new FixedFuncHook(drawable.getGL().getGL2ES2()))); 

此外,请参阅“OpenGL ES 2.0编程指南”(Aaftab Munshi at alli。)。有一些有关仿真GLES 1.0 FFP的着色器示例。