• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Raytrace world

            Chaos 的光線跟蹤世界

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              4 隨筆 :: 0 文章 :: 63 評論 :: 0 Trackbacks
             
            一個支持 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 等等。
             
            posted on 2005-10-21 21:29 Chaos Chiao 閱讀(5565) 評論(23)  編輯 收藏 引用 所屬分類: Blooming Quad

            評論

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2005-10-21 23:11 Javen-Studio 咖啡小屋軟件工作室
            強烈支持你!其實我也想考慮做類似的事,比如寫個游戲引擎
              回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2005-10-22 21:29 地獄門神
            我也想做一個這樣的東西,以后我肯定會考相關專業的,在這里支持你一下。  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2005-11-01 09:00 IMC
            很佩服你的執著!  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2005-11-10 18:32 JOHN
            很佩服你的精神!
            在下有些慚愧呢, 但我會努力開發的。
              回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-02-23 05:00 maxman
            不得不支持,路過,華人需要你!  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-01 14:40 啊啊阿
            我是菜鳥,這是用什么語言開發的?需要什么條件呀?  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-01 14:43 啊啊阿
            下載的文件不能解壓?為什么?  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-01 22:51 dkink
            佩服你~~~

            雖然 我看計算機 圖形學 頭暈~  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-14 09:57 penny1
            作為美術不得不強烈的支持你們!!  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-14 13:04 NDD
            我有一個問題 你如何使用sse的? 你是把基本的數據結構都弄成了m128
            還是在不斷進行轉換?

            每次發射sse的時候
            是一次發射4個光線
            還是同時計算一個光線的3(或者4)個分量

            或者二個都用到了?


              回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-14 13:12 NDD
            對了 如果需要在北京找工作的話,可以聯系MS RA
            他們需要游戲圖形方面的人,我有一個同學才在那里做實習的

            另外上海ubisoft不要去的好,最近那里管理層有點據說有點動亂...
              回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-04-26 11:49 margee
            還少一個97004178.rar文件啊  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-05-10 23:48 hpj
            做得不錯,我最近也在研究光線跟蹤方面的工作。不知你有發文章了沒,可以拜讀一下嗎  回復  更多評論
              

            # 很吸引人,作為美術的我也支持你 2006-06-10 17:30 catman
            很吸引人,作為美術的我也支持你,  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-06-10 17:42 catman
            對了如果需要游戲角色模型我可以提供,  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-06-24 23:44 啊嵩
            你是我的榜樣。。
            我會繼續努力學習。!!
              回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-09-15 14:42 有名
            為什么不把這個東西移植到Cell 芯片上,實現真正的實時光線追蹤呢,現在這方面挺火爆的,你可以現在模擬器上做,反正現在PS3已經發售。

            這種東西在醫學成像,交互式3D游戲,工業造型上都有不錯的前途。  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2006-09-15 17:23 子彈
            強  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2007-09-12 23:01 路過
            定  回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2011-09-15 12:24 ClareSkinner
            People in every country take the <a href="http://bestfinance-blog.com/topics/mortgage-loans">mortgage loans</a> from different creditors, because it is easy.   回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2011-09-30 13:31 dissertation
            This is good that you do a king of best selling knowledge related to this good post. Hence we guess that it could be good when some students buy the thesis title and thesis writing from you.   回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2011-09-30 13:57 essay writing services
            Hello, a good enough data I can see at this page. That’s very nice that not only the essay writing service can compose the essays for sale.   回復  更多評論
              

            # re: About Blooming Quad,我的準實時光線跟蹤渲染引擎 2011-09-30 16:15 深圳市深城裝修
            笫二節 屋面裝飾 2011-9-27

            深圳市深城別墅裝修公司:

            建筑的屋面隨著時代發展,對屋面的要求越來越高,不單單為防水隔熱的要求.

            從俯視的角度,已被稱為建筑笫五立面,它的裝飾功能目益增強,現在從全國實施屋頂的"平改坡"和綠化屋面的情況更證實了這一點.

            本書新版中將此列人裝飾部分.

            屋面分類:按形式劃分,可分為平屋面,斜坡屋面:按保溫隔熱功能劃分,可分為保溫隔熱和非保溫隔熱屋面:按防水層位置劃分,

            可分為正置式屋面和倒置式屋面:按屋面使用功能劃分,可分為非上人屋面'上人屋面,綠化種植屋面,蓄水屋面,停車,停機屋面,運動場所屋面等:按采用的防水材料劃分,

            可分為卷材防水屋面別墅裝修,涂膜防水屋面,瓦屋面,金屬板材屋面裝修的地方,剛性混凝土防水屋面等.

            按屋面形甙類如下:深圳市深城裝修公司  回復  更多評論
              

            日产精品久久久久久久性色| 一极黄色视频久久网站| 国产亚洲精品自在久久| 久久亚洲国产午夜精品理论片| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 亚洲国产成人久久一区WWW| 久久久久久久久久久| 一本色道久久88加勒比—综合| 蜜桃麻豆www久久国产精品| 久久精品水蜜桃av综合天堂| 久久精品国产99久久香蕉| 日产精品久久久久久久| 日韩久久无码免费毛片软件| 久久综合久久自在自线精品自| 久久精品二区| 久久亚洲精品视频| 国产三级久久久精品麻豆三级| 亚洲国产精品无码久久久久久曰| 精品无码久久久久国产| 久久精品国产亚洲αv忘忧草| 国产精品内射久久久久欢欢 | 精品久久久久久久国产潘金莲 | 久久久无码精品亚洲日韩京东传媒| 久久99国产精品久久| 无码超乳爆乳中文字幕久久 | 波多野结衣久久精品| 亚洲天堂久久精品| 久久国产精品国产自线拍免费| 亚洲日韩中文无码久久| 99久久香蕉国产线看观香| 亚洲国产成人久久综合区| 久久久久综合中文字幕 | 99精品久久久久中文字幕| 亚洲精品国精品久久99热| 久久久精品国产亚洲成人满18免费网站 | 久久精品国产亚洲AV香蕉| 免费无码国产欧美久久18| 成人久久免费网站| 亚洲国产欧美国产综合久久| 乱亲女H秽乱长久久久| 久久久亚洲欧洲日产国码二区|