`
javahigh1
  • 浏览: 1264043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

脚本与渲染器 .

 
阅读更多

一直以来都想做一个脚本驱动的渲染器.就是说可以用脚本定制渲染器的行为,比如创建多少个渲染队列,如何渲染.多少RenderTarget, 每个物体的材质也是一样. 要生成多少个Pass,每个Pass是立即渲染呢还是放到那个队列里 .
其实我是个很懒的人 ,这个想法早在去年就有了.一直拖到现在,昨天晚上实在受不了自己的懒惰了.也受点老宋一些刺激,顺手就抓了个AngelScript.把它集成到 渲染器里了.一个简单的渲染脚本类似如下
int queueNormal;
int queueTranslucy;
int queueGlow;
int texScreen;
int quadShader;
int colorMorphShader;
int rt;
int x , y ;
int x2 , y2;
int dx , dy;
int dx2 , dy2;
void StartRenderer()
{
x = 0;
y = 0;
dx = 1;
dy = 2;

x2 = 10;
y2 = 40;
dx2 = 2;
dy2 = 1;

queueNormal = createQueue("Normal");
queueTranslucy = createQueue("Translucy");
queueGlow = createQueue("Glow");
texScreen = load2DTexture("default","videoTexture.mpeg");
quadShader = loadShader("Simple.shader");
colorMorphShader = loadShader("SimpleColorMorph.shader");
rt = createRenderTexture("RT",1024,1024,1);
}


void StopRenderer()
{
clearRenderContex();
}

void Render(float passedTime)
{
x += dx;
y += dy;
if(x < 0 || x > 600) dx =-dx;
if(y < 0 || y > 400) dy =-dy;

x2 += dx2;
y2 += dy2;
if(x2 < 0 || x2 > 600) dx2 =-dx2;

if(y2 < 0 || y2 > 400) dy2 =-dy2;
renderQueue(queueNormal);

pushRenderTexture(rt,0);
clearScene(1.0f,0.0f,0.0f,1.0f,1,0);
renderQueue(queueNormal);
popRenderTexture();

enter2DMode();

pushShader(quadShader);
draw2DTextureRect(rt,x,y,500,400,1.0,1.0,1.0,1.0);
popShader();

pushShader(colorMorphShader);
draw2DTextureRect(texScreen,x2,y2,400,300,1.0,1.0,1.0,1.0);
popShader();
leave2DMode();
}

AngelScript是C语法的. 可以方便的把脚本稍加转化编译进程序里,或者做成dll插件的形式,在发布程序的时候能保证最大的效率.非常的不错.

以上这个脚本能在正常绘制一个普通渲染队列以外,额外的绘制两个矩形. 脚本能控制渲染器多少的行为完全看你给脚本暴露了多少的接口.

分享到:
评论

相关推荐

    Electron通过预加载脚本从渲染器访问Node.js测试桌面端源码包

    它的核心理念是将Chromium的渲染器进程与Node.js的主进程相结合,从而在桌面应用中使用Web开发的便利性和Node.js的系统级功能。 描述中提到的“预加载脚本”是Electron的一个关键概念。预加载脚本是在主进程和渲染...

    巴西渲染器.Brazil.RS.1.2.63.for.Max8

    巴西渲染器(Brazil RS)是一款高级的三维渲染插件,专为3D Studio Max 8设计。这款渲染引擎以其高质量的图像输出、丰富的材质系统和先进的光照模拟而著名。巴西RS 1.2.63版是该软件的一个特定版本,可能包含了一些...

    C4D_OC渲染器划痕污迹脚本+使用教程.zip

    《C4D_OC渲染器划痕污迹脚本+使用教程》 在3D建模与动画领域,Maxon的Cinema 4D(简称C4D)是一款广泛应用的专业软件,以其直观的界面和强大的功能深受设计师喜爱。OC渲染器(Octane Render)是C4D的一个插件,以其...

    Electron通过预加载脚本从渲染器访问Node.js测试桌面端安装文件

    Electron通过预加载脚本从渲染器访问Node.js测试桌面端安装文件

    3dsmax脚本大全3dmax脚本大全

    3. 灯光与摄像机:通过脚本可以批量设置灯光参数,创建复杂的照明效果,同时也能自动化设置摄像机视角,方便预览和渲染。 4. 动画制作:脚本可以生成动画关键帧,实现路径动画,或者进行复杂的骨骼动画设置。 5. ...

    aecc渲染脚本

    AECC渲染脚本是针对Adobe After Effects CC(After Effects Creative Cloud)的一款自动化工具,主要用于提高渲染效率和简化渲染过程。After Effects是一款强大的视觉特效、动态图形和动画编辑软件,广泛应用于电影...

    我就是来分享脚本玩玩的.zip

    "我就是来分享脚本玩玩的.zip"这个压缩包似乎包含了一个与脚本相关的项目,让我们来深入探讨一下这个主题。 首先,我们要理解什么是脚本。脚本是一种非编译型的编程语言,它不像C++或Java那样需要先编译成机器码...

    maya前台渲染插件mel脚本工具1.2

    "前台渲染"意味着在Maya的工作界面中直接进行渲染,这与后台渲染不同,后台渲染通常会在一个独立的进程中进行,不影响用户的交互操作。前台渲染的优势在于能够实时查看渲染结果,方便快速调整和优化设置。 插件的...

    3dmax一键通道渲染

    3dmax一键通道渲染 3DMAX一键通道渲染脚本插件功能介绍: 1、一键自动安装,使用方便 2、支持渲染各种通道AO、SSS、折射反射通道 ...4、自动关闭灯光,自动渲染,自动切换扫描线渲染器,自动还原材质

    Markdown渲染工具.zip

    这款工具通常包含一系列支持Markdown渲染的核心组件和样式文件。 在提供的压缩包文件中,我们可以看到以下关键文件: 1. `markdown-palettes.css` 和 `MarkdownPalettes.css`:这两个文件都是CSS样式表,用于定义...

    3dMax顶点渲染器脚本

    在3DMax中,"3dMax顶点渲染器脚本"是一种特殊的工具,它允许用户通过定制的脚本来实现对模型顶点级别的实时渲染效果。这种技术在创建复杂的视觉效果、动态纹理或实验性艺术项目时非常有用。 顶点渲染器是一种插件,...

    Ruby游戏脚本(RGSS).zip

    5. **Interpreter.rb**、**Interpreter_3.rb**、**Interpreter_5.rb**: 脚本解释器类,用于执行游戏中的事件脚本,例如触发地图上的事件,或者处理战斗中的命令。 6. **Window_Base.rb**: 基础窗口类,为游戏界面中...

    PHP-View, 适用于 Slim 3 ( 或者任何其他 PSR 7项目)的简单PHP渲染器.zip

    PHP-View, 适用于 Slim 3 ( 或者任何其他 PSR 7项目)的简单PHP渲染器 PHP渲染器这是一个呈现器,用于将PHP视图脚本呈现到 PSR-7 响应对象中。 它适用于瘦框架 3 。跨站点脚本( XSS ) 风险请注意,php视图没有从XSS...

    Lumberyard+AI系统构建与优化+环境搭建+游戏基础+物理系统等全套教程

    Lumberyard材质与着色器应用.pdf Lumberyard光照与渲染技术.pdf Lumberyard地形编辑与环境艺术.pdf Lumberyard粒子系统与特效制作.pdf Lumberyard脚本与逻辑控制.pdf Lumberyard声音系统与音频集成.pdf Lumberyard...

    Unity3D脚本中文教程.pdf.

    5. **图形与渲染**:涵盖精灵(Sprites)、材质(Materials)、纹理(Textures)、光照(Lighting)和相机(Cameras)的使用,以及如何创建动画和特效。 6. **物理系统**:讲解Unity的内置物理引擎,包括刚体(Rigidbody)、...

    巴西渲染器max9

    6. **脚本与插件支持**:为了满足专业用户的个性化需求,巴西渲染器支持自定义脚本和第三方插件,扩展其功能,提高工作效率。 7. **交互式渲染**:巴西渲染器的交互式渲染模式允许用户在设计过程中实时预览修改效果...

    3dmax渲染器

    《3dmax渲染器:深度解析与应用指南》 3dmax是一款强大的三维建模和渲染软件,广泛应用于建筑可视化、影视特效、游戏开发等多个领域。"3dmax111111"可能指的是3dmax的一个特定版本或者某种特殊设定,但在这里我们将...

    游戏脚本-自动点燃.zip

    这些语言允许开发者编写控制游戏逻辑、事件处理、AI行为、动画序列等的代码,而无需深入底层的图形渲染和物理引擎。 以Lua为例,它是一种轻量级的脚本语言,被许多游戏引擎如Cocos2d-x和Corona SDK所采用。它的语法...

    KK渲染器软件

    【KK渲染器软件】 KK渲染器,全称为Krakatoa,是一款专为3D图形设计和视觉特效行业开发的高性能、高度可定制的体积粒子渲染工具。它以其卓越的粒子渲染能力,尤其是在大规模粒子效果方面,深受专业设计师和艺术家们...

    Unity教学课件: 第02章 Unity脚本程序基础知识 .ppt

    Unity 脚本的基础语法包括变换与旋转、记录时间、访问游戏对象组件等。 * 变换与旋转:在 Unity 中对游戏对象的操作都是通过脚本来修改游戏对象的 Transform 属性和 Rigidbody 属性来实现的。 * 记录时间:需要...

Global site tag (gtag.js) - Google Analytics