十四、附录 C:WebGL 规格和零碎事项
本附录包含我们提到过但未完全涵盖的规范的某些部分,在此列出以供参考。
webcl 上下文属性
当我们获得我们的 WebGL 上下文时,我们可以有选择地向它传递一个包含以下部分或全部属性的对象:
字典 WebGLContextAttributes {
布尔 alpha =真;
布尔深度= true
布尔模具=假;
boolean 抗锯齿= true
boolean premultiplied alpha = true;
boolean preserveDrawingBuffer = false;
};
我们展示了如何在一个第 5 章的投射实例中保存绘图缓冲区:
GL = canvas . get context(" webgl " { preserve drawing buffer:true })| |)
canvas . get context(" experimental-web GL ",{ preserveDrawingBuffer:true });
通过保留缓冲区内容而不是自动交换缓冲区,我们可以看到物体运动的轨迹,还可以产生运动模糊等效果。如果性能是关键,并且我们不需要 alpha 或深度测试,我们可以禁用这些属性。如果我们需要模板缓冲区,我们可以启用它。我们在第 10 章中展示了如何禁用抗锯齿。premultipliedAlpha 值影响画布的 Alpha 组件如何影响图像的整体颜色。将该值设置为 false 会使画布元素的 WebGL 颜色计算与 2D 上下文相同。
纹理属性
在第三章中,我们忽略了一些纹理选项。
立方体贴图目标
对于立方体贴图纹理,目标属性可以是以下之一:
纹理立方体贴图,纹理绑定立方体贴图,
纹理 _ 立方体 _ 贴图 _ 正 X,纹理 _ 立方体 _ 贴图 _ 负 X,
纹理 _ 立方体 _ 贴图 _ 正 _Y,纹理 _ 立方体 _ 贴图 _ 负 _Y,
纹理 _ 立方体 _ 贴图 _ 正 Z,纹理 _ 立方体 _ 贴图 _ 负 Z,
最大立方体贴图纹理大小
泰晤士河 2D
纹理的格式如下:
阿尔法:阿尔法
RGB: R、g、b 颜色
RGBA:红、绿、蓝颜色和阿尔法
亮度:亮度
亮度 _ALPHA:亮度,ALPHA
这些类型可以是:
无符号字节
无符号 _ 短整型 _4_4_4_4
UNSIGNED _ SHORT _ 5 _ 5 _ 5
无符号 _SHORT_5_6_5
以下组合是合法的:
无符号字节/ RGBA,RGB,亮度,亮度阿尔法
UNSIGNED_SHORT_4_4_4_4 / RGBA
UNSIGNED_SHORT_5_5_5_1 / RGBA
UNSIGNED_SHORT_5_6_5 / RGB
帧缓冲区和渲染缓冲区目标和附件
在第十章中,我们介绍了帧缓冲区和渲染缓冲区 。其他合法附件/格式组合如下:
深度 _ 附件/深度 _ 组件 _16
模板 _ 附件/模板 _ 索引 8
深度 _ 模板 _ 附件/深度 _ 模板
颜色附件:COLOR_ATTACHMENT0
附加格式:RGBA、RGBA4、RGB5_A1、RGB565、STENCIL_INDEX
以下并发附件组合是非法的:
深度 _ 附件/深度 _ 模板 _ 附件
模板 _ 附件/深度 _ 模板 _ 附件
深度 _ 附件/模板 _ 附件
版权属于:月萌API www.moonapi.com,转载请注明出处