我的材质系统---RenderScript的设计日记 (2005-8-11)
2005-08-12 01:22
281 查看
RenderScript的设计笔记:
2005-8-11:
1: RenderScript为一系列的渲染指令.用来指示渲染器如何来渲染物体,
也可以理解为RenderScript如何调用渲染器的渲染接口
2: 物体本身包含了以下的信息,就是渲染器和RenderScript使用的数据.
(1): surface material ,其中包含了 TextureLayer + D3D/OpenGL material.
在模型系统里。这些参数可以从MAX里导出来.并可以在编辑器里编辑.
(2): shader.系统里有许多预先写好的Shader.
(3): render state. RenderState主要用来控制物体的渲染状态.其中包含了渲染的排序.
也许我们需要对每个pass设置物体的渲染状态.
综上: 渲染器的RenderScript有两种设计方案.一种是把renderscript当作一个.fx来写.
这样的话,RenderScript其实就是一个数据,一个配置文件.Renderer根据这个配置文件来解析.
同时,我们还需要做一个脚本来控制渲染器有多少个渲染队列。
这样渲染器就可以在修改很少的代码的甚至不修改情况下,支持渲染glow hdr等post render effect
另外的一种就是把渲染器的基本功能设计好,在Renderscript里以指令的形式调用Renderer的功能。
这样RenderScript就真的是一种语言,一种Very High Shading Language.
下面展示第一种方案的两个演示配置文件
渲染器的配置
<RendererCfg
<Queues //这里展示了有多少个渲染队列
< Queue type = main , tip = def //每个渲染队列的用途
RenderTarget = Def_RenderTarget
>
< Queue type = after , tip = glow
Rendertarget = <0.5 , 0.5>Def_RenderTarget
>
>
<RendererScript //这里的数据控制如何
>
>
渲染脚本
begin RenderScript <name = "卡通">
{
begin tech <name = High>
{
begin pass 0 <render=now>
{
surface_material = DEF_Material
render_state = "单面物体"
vertex_buf = Position/Normal/Tangent/Texturex2
vertex_shader = "ppl_cartoon.vs"
pixel_shader = "ppl_cartoon.ps"
}
begin pass 1 <render=follow> //follow的意思是跟着前面的pass渲染
{
render_state = "放大背面"
vertex_shader = "extrude_back_face.vs"
pixel_shader = "extrude_back_face.ps"
}
begin pass 2 <render=after, tip = glow> //after的意思是表示这个pass要在所有的
{
render_state = "单面物体"
}
}end tech
}end RenderScript
2005-8-11:
1: RenderScript为一系列的渲染指令.用来指示渲染器如何来渲染物体,
也可以理解为RenderScript如何调用渲染器的渲染接口
2: 物体本身包含了以下的信息,就是渲染器和RenderScript使用的数据.
(1): surface material ,其中包含了 TextureLayer + D3D/OpenGL material.
在模型系统里。这些参数可以从MAX里导出来.并可以在编辑器里编辑.
(2): shader.系统里有许多预先写好的Shader.
(3): render state. RenderState主要用来控制物体的渲染状态.其中包含了渲染的排序.
也许我们需要对每个pass设置物体的渲染状态.
综上: 渲染器的RenderScript有两种设计方案.一种是把renderscript当作一个.fx来写.
这样的话,RenderScript其实就是一个数据,一个配置文件.Renderer根据这个配置文件来解析.
同时,我们还需要做一个脚本来控制渲染器有多少个渲染队列。
这样渲染器就可以在修改很少的代码的甚至不修改情况下,支持渲染glow hdr等post render effect
另外的一种就是把渲染器的基本功能设计好,在Renderscript里以指令的形式调用Renderer的功能。
这样RenderScript就真的是一种语言,一种Very High Shading Language.
下面展示第一种方案的两个演示配置文件
渲染器的配置
<RendererCfg
<Queues //这里展示了有多少个渲染队列
< Queue type = main , tip = def //每个渲染队列的用途
RenderTarget = Def_RenderTarget
>
< Queue type = after , tip = glow
Rendertarget = <0.5 , 0.5>Def_RenderTarget
>
>
<RendererScript //这里的数据控制如何
>
>
渲染脚本
begin RenderScript <name = "卡通">
{
begin tech <name = High>
{
begin pass 0 <render=now>
{
surface_material = DEF_Material
render_state = "单面物体"
vertex_buf = Position/Normal/Tangent/Texturex2
vertex_shader = "ppl_cartoon.vs"
pixel_shader = "ppl_cartoon.ps"
}
begin pass 1 <render=follow> //follow的意思是跟着前面的pass渲染
{
render_state = "放大背面"
vertex_shader = "extrude_back_face.vs"
pixel_shader = "extrude_back_face.ps"
}
begin pass 2 <render=after, tip = glow> //after的意思是表示这个pass要在所有的
{
render_state = "单面物体"
}
}end tech
}end RenderScript
相关文章推荐
- 我的材质系统---RenderScript的设计日记 (2005-8-08)
- 知识管理系统Data Solution研发日记之一 场景设计与需求列出
- OpenGL系统设计-光照与材质(1)
- OpenGL系统设计-光照与材质(2)
- OpenGL系统设计-光照与材质(3)
- 房屋产权登记管理系统 设计日记(1)
- OpenGL系统设计-光照与材质(4)
- 知识管理系统Data Solution研发日记之十二 网页数据抓取Fetch,呈现Render,导出Export
- 【学习日记】MVC架构+DAO设计小型信息管理系统(一)
- OpenGL系统设计-光照与材质(5)
- 关于电子支付系统的数据库设计
- 基于B/S模式的视频监控系统设计 [转
- 课程设计--考试报名管理系统
- 局域网实时通信系统的设计与实现(3)
- 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写
- nginx的cache系统设计原理
- 系统架构设计理论与原则、负载均衡及高可用系统设计速记 一、系统架构设计理论与原则 这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计。 (一)、CAP理论 1、什么是CAP
- 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验
- 支付系统的设计体验
- 简易计算机系统综合设计--通用寄存器