• <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>
            隨筆-341  評(píng)論-2670  文章-0  trackbacks-0

                每年總有那么幾個(gè)星期不想寫編譯器,這個(gè)時(shí)候做做ray tracing就變成一件很美妙的事情了。因此這個(gè)星期重寫了當(dāng)年那個(gè)超爛的光線追蹤,然后加上了貼圖的功能。當(dāng)然圖是可以直接貼在物體上的,還支持了法線貼圖,譬如說下面做的地球在不同方向的光線的照射下顯得有立體效果:


                之所以FPS有16是因?yàn)槲乙呀?jīng)不再當(dāng)年那個(gè)破thinkpad上渲染,而在一個(gè)i7四核超線程三通道的CPU上做了。渲染的時(shí)候?yàn)榱撕?jiǎn)單,把屏幕等分成了八行,然后創(chuàng)建八個(gè)線程分別綁定到八個(gè)CPU上面去(SetThreadAffinityMask),最后渲染完出來。當(dāng)然比起那些專業(yè)的還是顯得相當(dāng)慢,現(xiàn)在很多光線追蹤軟件都用了GPU來做,不過我GPU也沒用,SSE指令也沒用,就純粹C++寫。如今也懶得用C++做GUI了,所以把核心用C++做成了之后,export幾個(gè)函數(shù)出來,用C#的P/Invoke直接調(diào)用。C++渲染完以后給一個(gè)HBITMAP,C#拿過來就往窗口上畫,還是十分方便的哈。多語(yǔ)言開發(fā)萬歲。

                重寫了光線追蹤之后仍然把折射和反射給做了,因此可以做出個(gè)類似凸透鏡一樣的東西:


                需要提一下的是,做貼圖的時(shí)候?qū)崿F(xiàn)了nearest、linear和bicubic三種插值方法。nearest基本上就是不插值,所以放大了之后會(huì)有馬賽克效果。linear是線性插值,如果放得太大還是能看出一點(diǎn)模糊的馬賽克。bicubic效果就好很多了,如果大家有興趣的話可以到這里去看。為了達(dá)到更好的效果,后面還有計(jì)劃做ray differential和各向異性過濾。ray differential之后就可以做photon mapping(一種比較高效的全局光照模型)了。做完photon mapping之后,無聊的心情大概就結(jié)束了,可以繼續(xù)寫編譯器了吧。

                嗯嗯,雖然ray differential和photon mapping還沒做,我就先把代碼丟上啦,不僅可以做備份,大家也能搞下來看一看。當(dāng)然需要有Visual Studio 2010才能編譯的。選擇release編譯之后到release文件夾下去啟動(dòng),debug的話慢的不能忍。而且我的多線程模型是一個(gè)核(超線程的話算兩個(gè))一個(gè)線程,那些古老的雙核CPU大概性能會(huì)很慘不忍賭吧……

             

            posted on 2011-01-08 23:54 陳梓瀚(vczh) 閱讀(6978) 評(píng)論(15)  編輯 收藏 引用 所屬分類: 3D

            評(píng)論:
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 00:21 | 陳昱(CY)
            沙發(fā),沒有折射反射的快接近實(shí)時(shí)了  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 01:10 | flyliying
            F1 很流暢
            F2 就剩8fps了
            F3 F4 都是7.幾  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 01:18 | 陳梓瀚(vczh)
            @flyliying
            嗯,這個(gè)性能跟CPU的性能是嚴(yán)格掛鉤的。話說F4應(yīng)該比F2F3都慢很多才是,怎么你都差不多……  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 02:04 | mm
            背景。。。  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 03:01 | flyliying
            場(chǎng)景2是F3 F4差不多,場(chǎng)景1就差很遠(yuǎn)  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 04:07 | ooseven
            非常理解博主的心情,我以前就說了,做智能提示,如果該語(yǔ)言支持的語(yǔ)法稍微復(fù)雜一點(diǎn),連自殺的心情都有。以后你的語(yǔ)言如果支持模板就更能體會(huì)這種心情。不要放棄,加油。
              回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 05:22 | 陳梓瀚(vczh)
            @ooseven
            其實(shí)語(yǔ)法復(fù)雜一點(diǎn)關(guān)系都沒有哈,我做了這么多年已經(jīng)對(duì)處理各種復(fù)雜語(yǔ)法得心應(yīng)手了,真正的原因是做那個(gè)東西的視覺刺激太少……IDE里面的語(yǔ)法分析器是我寫的一個(gè)讀文法生成代碼的代碼生成器生成的,所以其實(shí)什么語(yǔ)法都是一樣的……  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 09:23 | ooseven
            @陳梓瀚(vczh)
            嗯,到了繼承,動(dòng)多態(tài),靜多態(tài),模板,泛型這一級(jí)的智能提示,語(yǔ)法樹已經(jīng)幫不上多少忙了。而需要推導(dǎo)。
            按說,推導(dǎo)過程只要編譯器寫出來了,算法照抄就是,但是,實(shí)際可沒這么樂觀,因?yàn)橹悄芴崾拘枰谟脩舨粩鄤?dòng)態(tài)變化的代碼,以及語(yǔ)法尚不完整的情況下進(jìn)行有限的推導(dǎo),甚至是聯(lián)想似推導(dǎo),所以非常的難。你沒看到微軟做了這么多年還是做不過vcassist。而其實(shí),vcassist也做得不怎么樣,你隨便用一個(gè)比較復(fù)雜的模板庫(kù)在vcassist下試試,比如boost,很容易的就能使他啞火!
              回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 09:47 | 陳梓瀚(vczh)
            @ooseven
            代碼殘缺不全和用戶動(dòng)態(tài)輸入的問題我已經(jīng)解決了你可以看我之前的文章哈。唯一的問題其實(shí)是性能問題,這個(gè)還得再改一改。功能問題不是問題。當(dāng)然C++是唯一一個(gè)intellisense很難做的語(yǔ)言,不過我顯然也不會(huì)試圖去做C++的intellisensen。至于其他語(yǔ)言,還是不太難的。  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-09 18:27 | 空明流轉(zhuǎn)
            @ooseven
            C++的IS難做其實(shí)是C++特有的問題。別的語(yǔ)言都沒這么夸張。  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西[未登錄] 2011-01-24 00:12 | zq
            提示SimulatorCore.dll沒有  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-01-24 08:30 | 陳梓瀚(vczh)
            @zq
            兩個(gè)工程一起build,dll就是那個(gè)C++的  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-02-13 23:48 | 劉柳
            偶爾看到這個(gè)網(wǎng)頁(yè),我是大四學(xué)生,參加了今年的研究生考試計(jì)算機(jī)方向,將來也想走圖形學(xué),請(qǐng)問我想在為將來學(xué)圖形學(xué),做哪些補(bǔ)充準(zhǔn)備,還有請(qǐng)問博主的背景是什么,  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-02-14 00:44 | 陳梓瀚(vczh)
            @劉柳
            本科畢業(yè),在某著名公司開發(fā)一個(gè)高性能程序的GUI部分。  回復(fù)  更多評(píng)論
              
            # re: 圖形學(xué)真是一個(gè)打發(fā)時(shí)間的好東西 2011-02-14 00:44 | 陳梓瀚(vczh)
            @劉柳
            我認(rèn)為研究生會(huì)給你系統(tǒng)培訓(xùn)的,反正都是一些數(shù)學(xué)知識(shí)和技巧,也是很容易買到書的。沒事多看看siggraph。  回復(fù)  更多評(píng)論
              
            青青久久精品国产免费看| 国产午夜福利精品久久2021| 国产精品免费久久| 久久综合亚洲色HEZYO国产 | 99久久夜色精品国产网站| 久久久久久亚洲AV无码专区| 国产精品久久久99| 狠狠色婷婷久久一区二区| 99久久99久久精品国产片| 亚洲欧洲中文日韩久久AV乱码| 中文字幕热久久久久久久| 久久久久久狠狠丁香| 丁香色欲久久久久久综合网| 国产精品伊人久久伊人电影| 久久天天躁狠狠躁夜夜网站 | 久久99国产精品一区二区| 久久久久国产一级毛片高清板| 无码人妻久久久一区二区三区| 久久人人爽人人澡人人高潮AV | 久久亚洲精品成人av无码网站| 精品国产青草久久久久福利 | 久久美女人爽女人爽| 77777亚洲午夜久久多喷| 久久久久久久综合日本| 伊人久久大香线焦综合四虎| 久久精品中文无码资源站| 久久婷婷国产剧情内射白浆| 性做久久久久久免费观看| 久久精品无码免费不卡| 欧美亚洲国产精品久久蜜芽| 久久99国内精品自在现线| 久久精品国产色蜜蜜麻豆| 亚洲国产精品久久久天堂| 少妇无套内谢久久久久| 久久久精品国产亚洲成人满18免费网站 | 亚洲国产成人久久笫一页| 亚洲精品成人久久久| 久久婷婷午色综合夜啪| 久久久久亚洲AV片无码下载蜜桃| 欧美午夜A∨大片久久 | 中文字幕亚洲综合久久菠萝蜜|