分享
 
 
 

About Blooming Quad,我的准实时光线跟踪渲染引擎

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

一个支持 RIB 和 RSL 的高速 raytracer,高速得可以近实时进行光线跟踪。

大图

经过了一年多的断断续续的开发,BloomingQuad 终于已经成型了,并能向一些实际应用性工作迈进,比如 Ambient Occlusion ,或者 RSL Shader。

其实我已经写疯了,所以现在我似乎都不知道应该写什么来介绍它好。

然而,我刚刚毕业了,离开了舒服的学校,接下来必须面对吃饭问题。

所以、开门见山,我现在发布的 BloomingQuad 其实并不完善(应该说相当不完善),我 90% 是为了找工作才发布的,又或者说,希望能找到懂得它的作用和意义的合作伙伴。

很多人说我不切实际、又说我开发些没有 P 用的东西,也有很多人不屑,我不在乎,因为只要这个世界上依然有一个人懂得下面这些东西是什么,那就已经足够了。当然,还希望那个人能支持我继续做下去。

大图

Ambient Occlusion 演示。

把它作为商业用渲染器,在国内唯一有用武之地的就是为专业工作室定制特殊的渲染效果,又或是一些需要用到更开放的渲染技术的高端项目。简而言之、就是作为 In house Renderer.

但也必须先讲明白,开发和维护这么一个东西,是极其不容易的,在目前来说投入与产出可能不成正比,它的价值,必须在一段时间的积累后才能看到。 Pixar 开发的 PRMan 也不是一年半载就能为它渲染电影的,80 年的项目,到了 95 年才渲染出第一部动画电影。

尽管这是一场持久战,但若我们真想达到 Pixar 的高度,一味地研究别人开发出来的软件和技术是徒劳的,鼻子将永远被别人牵着走。

那么除了开发一个 PRMan 的替代品外,我也自认通过这个渲染器的开发,我已经对整个 RenderMan 体系有非常深入的了解,甚至对各种渲染器的工作体系和结构有了很深刻的认识。不仅仅是 RenderMan ,MentalRay 的 MI 架构也是我的重点研究部分,BloomingQuad 的前几版所使用的 Scene Description 就是类 MI 的节点式结构。

不过后来我觉得 RenderMan 比 MentalRay 要流行得多,而直接使用 RIB 会更划算,于是我开始把整个结构体系进行重写,以 RI Spec 3.3 为标准,力求可以完全符合 RI Spec 3.3 ,希望能渲染出和 PRMan (在轮廓和基本要素上)一致的图像。

当然这是非常艰难而痛苦的,特别是一个人、只能利用课余时间编写。

为了达到能在实际渲染中使用,我把整个渲染器都使用了 SSE/SSE2 指令优化,尤其是 Raytrace 核心部分,全部用汇编写成,速度“可以说”非常快,能达到(某一测试场景)1800 万次/秒,约是 Pixie 的 2 倍。

而最后,为了找到商业使用的机会,我修改了一下内核,使它能实现简单的 Realtime Raytrace,以直观的方法表现它到底有多快。

大图

Realtime ~ 这个场景比较少面,所以也能达到 7 fps 左右,320 X 240

大图

400 X 300 的 realtime 演示,我绝对不会使用 Sphere、Box 这些直接简化了 Intersection 的东西来自欺欺人,所有演示的物体都是 General 多边形。

大图

支持 RSL 的编译与执行、上面的三个物体都分别使用了编写的 Shader ,盒子用了 Slim 生成的 Worley ,平面用了 step( x , mod() ) 形式的 Grid ,球体利用 s 坐标混合了 Thead 和 Spline ( Noise( P ) )。

另外我也终于完成了持久的“抗战”,写出了一个 RenderMan Shading Language 编译器与执行虚拟机。这个编译器符合 RI Spec 3.3 标准,能成功编译出 Slim 生成的各种 Shader ,而且支持 Constant Folding、Instruction Replacement、Dead Code Elimination 等优化。但目前它的光照部分(包括 Illumination 和 Illuminate 、Solar、Ambience)都在测试中,Gather 正在编写,而 Occlusion 和 Indirect Diffuse 只能靠命令行激活。

大图

相信有更多人(可能一共才只有几个吧)会关心它到底怎么在 Max、Maya 、XSI 中使用,其实很简单,RIB 非常流行,几乎所有的大型软件上都有导出 RIB 文件的软件,MAX 有 maxman,Maya 有 RAT、mayaman、liquid,XSI 有 rib 插件,LW 有 Lightman,Houdini 本身直接支持,所以根本不需要担心、所有的大型软件都能和 BloomingQuad 进行沟通。

而且我能保证 MTOR 从 Maya 里导出的东西能大部分正确渲染。

大部分是指哪些部分呢?其实目前仅仅是指多边形而已,而且最好是三角片面的多边形,又或者保证“合法”的多边形,若有重边或者法线有问题,都不能渲染。

上面测试用的两个人头模型,都是我自己在 Maya 里做的,然后用 MTOR 导出来渲染的,可以看看它到底渲染出来的结果准确不准确。

如果你想直接在 Maya 里渲染 —— No problem ,在 RAT 里设置一下就 OK 了。

大图

也可以在 Maya 里启动实时 raytrace ~

说实在,这个 Realtime Raytrace 不太 Realtime,当然,我只是修改了一下 Render Loop 就拿出来了,里面的模型结构、Shading 体系,都是按照软渲染设计的,和普通软渲染共用同一个结构,没有作任何的实时渲染优化,所以能跑出这个 fps ,我自己就觉得已经 OK 了。

为了要说明它是 Realtime 的,我还设计了几个按键,i k l j , . 这六个,可以移动镜头,很简陋的功能而已,当然可以做得更复杂一些,但我目前只是演示一下我能做到什么地步,而怎么再精益求精则是在我解决了工作问题之后再想的事情了。

那么基本上都讲得 7788 了,开发过程还有很多有趣的东西,不过这只是很少数比较关心开发的人想要知道的。

其实这个所谓“渲染器”所能做到的还很有限,毕竟我只有一双手、一个脑袋,但我所希望的是能通过它让更多人看到,到底我们的开发能够做到些什么出来。

并不是说,别人的软件、所实现的功能,我们就一定绝对无法赶得上,这个说法是完全错误的。

问题在于,一直以来我们从来没有怎么在这上面投入过,大部分人都在观望,还有的在冷嘲热讽。

对,可能还没有这个市场、可能技术还不成熟,但必须有人去尝试,必须有人出来承担这个责任。

上面那些效果,在大部分人用商业渲染器看来,很幼稚。不过这仅仅是一个开始,我用一年时间做到了一个开始。

或许我最后还是要被迫放弃 CG 的工作,放弃我喜欢的开发,放弃我要超越 PRMan 的梦,但发这个帖子,除了为我自己找一个机会以外,更多的是希望大家在建模的时候、在 Rig 的时候、在 Surfacing 的时候、在 Key 动作的时候、在等待渲染的时候,能多想一想、什么时候我们能用我们自己的 CG 软件去做这些事情。

下载:

rar 包 1 2

两个文件解压到任何一个文件夹都可以,如果想要在 Maya 里调用,就必须放到 RAT 能找到的目录里,比如任何一个在 PATH 里的目录。

注意!必须是支持 SSE2 指令集的机器(即 P4、PM、A64)才可以运行。

在命令行里输入:

bqrd -rt occlusion.rib

即可进入 Realtime 测试。

bqrd -oc 32 king-triangle.rib

测试渲染 Ambient Occlusion,其中 -oc X 是指定采样的数目。

而 rscl 是 RSL 的编译器,懂 RenderMan 的朋友可以试一下自己写 Shader 给 rscl 编译,.shader 的文件是已经编译好了的 Shader。

注意!illuminance、illuminate、gather 等 statement 目前仍不支持,所有的 Derivative 都有限度支持(不支持 Du() 与 Dv() ,dPdu 与 dPdv 的结果只能作为切线方向)。

其它都合符 RenderMan Interface Specification 3.3 。

p.s.

渲染完成后可以按 's' 快捷键把渲染结果储存成 TIFF 格式的图片。

渲染窗口中按 F1 可以看到其它快捷键表,可以显示独立通道、或者混合显示 alpha 等等。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有