这个库可以更容易地快速创建WebGL应用程序原型。它比许多其它的WebGL库更底层,它不提供场景图(scene graph),它重新实现了OpenGL的modelview/投影矩阵堆栈,并提供类似的功能。它还重新推出GLSL的一些内置服务(如gl_Vertex和gl_ModelViewProjectionMatrix)和OpenGL的直接模式。
python build.py: 在src目录构建 lightgl.js
python build.py debug:内容改变后将立即从src重新编译
python build.py release:运行时需要使用谷歌JS编译器,假设你已经安装了 compiler.jar
docco的src / * JS: 这是在文档生成目录
简单的旋转立方体
多纹理
第一场景相机
现场操作
OpenGL的直接模式
渲染纹理
点光源阴影贴图
实时光线追踪
构造立体几何
GPU发光源
编译这个库
python build.py: 在src目录构建 lightgl.js
python build.py debug:内容改变后将立即从src重新编译
python build.py release:运行时需要使用谷歌JS编译器,假设你已经安装了 compiler.jar
docco的src / * JS: 这是在文档生成目录
示例代码
<!DOCTYPE html>
<html><body>
<script src="lightgl.js"></script>
<script>
var angle = 0;
var gl = GL.create();
var mesh = GL.Mesh.cube();
var shader = new GL.Shader('\
void main() {\
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\
}\
', '\
void main() {\
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\
}\
');
gl.onupdate = function(seconds) {
angle += 45 * seconds;
};
gl.ondraw = function() {
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.loadIdentity();
gl.translate(0, 0, -5);
gl.rotate(30, 1, 0, 0);
gl.rotate(angle, 0, 1, 0);
shader.draw(mesh);
};
gl.fullscreen();
gl.animate();
</script>
</body></html>
例子:
简单的旋转立方体
多纹理
第一场景相机
现场操作
OpenGL的直接模式
渲染纹理
点光源阴影贴图
实时光线追踪
构造立体几何
GPU发光源
汗!编辑也太不认真了吧!“编译”都写“编绎”了。
@曾行成 #0
感谢指出,已经更正
这个代码也太丑了吧。