WebGL自学教程——WebGL示例:14. 渲染到纹理和多程序对象

 

14. 渲染到纹理和多程序对象

 

    有的时候(比如实现镜像效果),需要将一些场景作为纹理。我们可以使用离屏渲染,使用帧缓冲来达到目的。具体点,是利用帧缓冲对象的附件。在帧缓冲对象中:

    可以附加为颜色附件的有:保存颜色值的渲染缓冲对象;2D纹理;单一mip级别的立方图纹理面。

    可以附加为深度附件的有:包含深度值的渲染缓冲,保存深度值的2D纹理;单一mip级别的立方图纹理面。

    可以附加为模板附件的有:保存模板值的渲染缓冲对象。

    在本章示例中,使用2D纹理作为颜色附件,渲染缓冲作为深度附件。至于模板缓冲,暂时还没有用到。

    为了方便,将原来的绘图代码移动到了js函数DrawScene中。在RenderScene中,首先创建和配置帧缓冲对象,然后调用DrawScene函数,将内容绘画到了帧缓冲对象中。然后,又调用了一次DrawScene函数,不过这次,是绘画到屏幕上。然后,我绘画了一个三角形,该三角形在第一章的示例中有定义,但我把其绕点顺序改为了顺时针。三角形所使用的纹理,正是帧缓冲中作为颜色附件作为纹理对象。

    本示例还演示了如何在一个应用中使用多个程序对象。





















将加载数据的代码转到了loadData.js文件中。




           
           
           

           
           
           
光照控制:启用光照
环境光(比例):R: G: B:
点光源(比例):R: G: B:








   

你可能感兴趣的:(编程:Web)