蓝紫™ v1.4.3
DDZEB 完全自主知识产权图形图像开发平台
在线运行 实时渲染
2024-06-06
二维函数渲染库 curve.js 发布,内置常用的 OpenGL 函数,比如 smoothstep 等,我们可以使用这个库很方便的设计各种函数曲线。示例程序请参考:Wave Fading
2024-03-16
基于 GLSL 语言的渲染引擎 canvasfs 增加对模版函数的支持,详情请参考:蓝紫 GLSL 模版函数。这是一项非常重要也非常实用的技术,我们在标准库中实现了许多模版函数,大大提高了编码效率。
2024-01-24
基于 GPU 的渲染引擎 canvasfs 以及 canvascs 增加自动后期处理选项,目前包括:自动白平衡、自动对比度、自动饱和度以及色彩增强等 基于全局统计 的后期处理操作。
2023-12-30
调色板支持上线,内置资源提供大量调色板供使用。所有的编程模型均支持 colormap 资源调用,包括 WebGL(canvasfs)、WebGPU(canvascs)以及 Pixel Shader(canvasps),具体使用方法及示例代码请参考相应的 API 文档。
2023-12-17
JS 接口提供音频加载(播放)功能,内置资源增加了少量音频资源。动画配合上音频,会产生更加强烈的现场感。
2023-12-09
提供 Cubemap 以及 HDRI 纹理,canvasfs 附加库提供相应函数支持。样例 Demo 程序 HDRI Mapping 有使用参考。
2023-09-18
蓝紫 WebGPU 渲染引擎 canvascs 正式发布上线。有了 WebGPU 渲染支持,就可以很直接的实现 Buddhabrot、Flame 等迭代渲染,也可以非常方便的编写粒子系统以及流体模拟等动画渲染程序。
蓝紫™ - 开发接口

原生 WebGL 2.0,对 WebGL2RenderingContext 的底层封装,可以编写顶点着色器以及片元着色器进行渲染,具体可参考蓝紫官方样例:Rotating Cube。我们对 WebGL 接口进行了极尽简化和精心设计,力求让引擎接口清晰、方便且灵活强大。以下是 canvasgl 渲染引擎提供的 API 集合:

一、初始化
const canvas = Lan.canvasgl(1800, 1200, {
  replaces : {from:'to'},
  texflipy : true,
});
Lan.loop(canvas.render);

与其它初始化方法一致,options 里可以使用 texflipy 指定纹理是否垂直翻转。在 options 里指定 replaces 项,可在 GLSL 代码中进行字符串替换操作。

{
  replaces : {NUMBER1:1000},
}

通过这样的设定,GLSL 代码中所有的 NUMBER1 都将被替换为 1000

二、接口属性 • CONTEXT

WebGL2RenderingContext 对象。

• VS

数组,所有 Vertex Shader 源代码。

• FS

数组,所有 Fragment Shader 源代码。

三、接口方法 • clear(r, g, b, a, mask)

执行图像清除操作,绘制为统一的颜色。

• texture([data])

创建 WebGLTexture 对象,返回对象包含如下属性和方法:

async cubemap(px, nx, py, ny, pz, nz)

通过 6 个图片 URL 加载 Cubemap 天空盒纹理,返回对象包含如下属性和方法:

• buffer(data[, type, usage])

创建缓冲(WebGLBuffer),type 缺省为 ARRAY_BUFFERusage 缺省为 STATIC_DRAW。返回对象附加属性方法如下:

• frameBuffer()

创建 WebGLFramebuffer,可以用来接收 WebGLProgram 的渲染输出。

• program([vertex_shader_code, fragment_shader_code, frame_buffer])

编译并生成一个 WebGLProgram 对象,frame_buffer 缺省为 null 表示渲染输出到屏幕。返回对象附加以下属性和方法: