• <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  評論-2670  文章-0  trackbacks-0
             
                 摘要: 關于這個問題實在沒有一個特別好的方法,基本方法還是來源于對intel手冊的觀察。因為指令表是從手冊上面復制出來的,但是上面又沒有標明66H前綴,怎么辦呢?人肉找規(guī)律。這里貼出了區(qū)分的代碼(進對于之前挑選出來的絕大多數x86與x87指令)以及生成后的一個很有規(guī)則的文件以供參考。  閱讀全文
            posted @ 2009-02-16 21:53 陳梓瀚(vczh) 閱讀(2374) | 評論 (1)編輯 收藏
                 摘要: 完整的轉換方法需要intel提供免費翻印下載的那本手冊。手冊過于精簡,因此這里給出的例子用于輔助對手冊進行理解。假設讀者閱讀過intel提供的手冊,或其他相關資料。  閱讀全文
            posted @ 2009-02-15 23:45 陳梓瀚(vczh) 閱讀(3688) | 評論 (5)編輯 收藏
                 摘要: 為了節(jié)省工作量,我打開intel的手冊,然后將那些框框里面的字符串復制到一個文本文件里面,最后寫一個C++程序用正則表達式處理。流程如下(含代碼和文件):  閱讀全文
            posted @ 2009-02-14 20:21 陳梓瀚(vczh) 閱讀(3153) | 評論 (2)編輯 收藏
                JIT是just in time,一門包含了JIT的腳本引擎就是將腳本編譯成機器碼,讓CPU而不是自己寫的虛擬機運行。這樣做有助于提供高速的運行環(huán)境、以及與C++更加方便的融合。這次計劃所需要的任務如下:

                匯編器。匯編器指的是可以做如下轉變的一個工具:機器碼 <--> 匯編程序的數據結構 <--> 匯編程序文本表示。有了三個可以互相轉換的結構之后,編譯器可以在更高層的層面上開發(fā),調試也變得更加容易。

                中間指令。由于x86的指令集過于復雜,并且以后可能會發(fā)生重大變更,因此有必要開發(fā)一個容易使用的、功能簡潔但是強大的另一個指令集,提供中間指令到匯編的單向轉換操作。這主要是用來解決x86指令互相之間操作不夠統一、寄存器分配和更好的x86指令選擇等問題,并且可以讓以后的編譯器更加容易開發(fā)。

                內存管理器。由于匯編是不處理內存申請釋放等操作的,因此需要將內存管理器,連同垃圾收集器,一起封裝成函數供匯編代碼調用。這個內存管理器屆時將使用C#和Java均驗證過的多代收集方法。如果語言不直接操作指針的話,還能提供壓縮操作。

                基本語言。基本語言擁有絕大多數的沒有重復的必要的基礎設施,并提供基本語言到中間指令的單向轉換操作。

                腳本語言。當然基本語言如果足夠強大的話也能變成一門腳本。這里指的腳本是類似DSL那樣有特殊目的語言。編譯器所需要的詞法分析器可以大部分交給我開發(fā)的VL++2.0的Syngram負責,并且編譯成基本語言。以后制作DSL將會變得非常簡單。

                匯編器是體力活,因此我想了一個辦法。Intel手冊上的指令集的二進制碼表還是寫得相當有規(guī)律的,因此可以復制下來集中到一起(已完成),然后使用正則表達式進行第一步處理,將碼表、語法和說明三部分分開成更加合理的格式,然后再用一個正則表達式進行處理,最后生成記載著翻譯方法的C++代碼。等這一部分完成之后,可能會給出相關的代碼,并且解釋x86在32位下的詳細的指令格式。64位等購買新電腦并安裝win7之后才開始,目前沒有條件。
            posted @ 2009-02-13 21:18 陳梓瀚(vczh) 閱讀(2799) | 評論 (5)編輯 收藏
                使用這篇文章使用的相同的算法渲染的一張帶有透明物體的圖。圖中的正方形板的下方有淡淡的黃色,球背后的陰影邊緣是軟的。由于沒有優(yōu)化的緣故,這幅圖在2×1.5GHz的筆記本上渲染了一個半小時。

            posted @ 2009-01-31 09:47 陳梓瀚(vczh) 閱讀(3067) | 評論 (1)編輯 收藏
                 摘要: 所謂的GI可以簡單的理解為渲染一個像素的時候,就在那個像素的法向量位置渲染一個半球,統計并作為光源輸入。現在使用一個比較粗糙的平行光在天空盒上的投影函數:f(t)=cos(t)*4/(1-cos(a)),其中a是光斑夾角的一半。GI花了好長時間,圖如下:

              閱讀全文
            posted @ 2009-01-30 06:54 陳梓瀚(vczh) 閱讀(2563) | 評論 (0)編輯 收藏
                 摘要: 之前搞錯了一個fresnel公式,實際上全透明物體的fresnel公式應當如下:

            f=入射角
            t=出射角,有sint=sinf/n
            新的factor=(sin2(f-t)/sin2(f+t)+tan2(f-t)/tan2(f+t))/2,這樣的話出現全反射的時候,factor=1。  閱讀全文
            posted @ 2009-01-28 00:27 陳梓瀚(vczh) 閱讀(2215) | 評論 (0)編輯 收藏
                 摘要: 由于之前的建模方法亂七八糟,現在使用一般的Fresnel方法為材質建模。這是一個處理折射和反射光比率的函數。計算方法如下:factor=bias+scale(1+I×N)^power,將factor剪裁之[0,1]范圍內之后,折射光/反射光比率為factor/(1-factor)。bias、scale與power是材質參數,需直接指定。  閱讀全文
            posted @ 2009-01-24 09:55 陳梓瀚(vczh) 閱讀(1793) | 評論 (0)編輯 收藏
                 摘要: 明天得開始研究別人是怎么處理材質的了。目前使用的方法是(反射來源×反射基準)×折射比率+(光源×材質顏色)×(1-折射比率)+[(折射來源+底面反射)×衰減+(1-衰減)]×透明物體內部顏色減。等材質完全做完之后,目前的渲染算法就可以為GI服務了。最后是計算混合的代碼:  閱讀全文
            posted @ 2009-01-22 06:02 陳梓瀚(vczh) 閱讀(2225) | 評論 (2)編輯 收藏
                 摘要: 由于一時找不到題目寫,所以這兩天就搞了一個簡單的基于光線追蹤的軟件渲染器。準備花點時間做下去了。從昨天開始到現在實現的東西有反射、陰影、多光源、線性變換等。
              閱讀全文
            posted @ 2009-01-19 00:48 陳梓瀚(vczh) 閱讀(4093) | 評論 (5)編輯 收藏
            僅列出標題
            共35頁: First 19 20 21 22 23 24 25 26 27 Last 
            久久精品视频91| 精品国产乱码久久久久久人妻| 亚洲婷婷国产精品电影人久久| 久久精品国产精品亚洲艾草网美妙 | 久久99精品国产麻豆宅宅| 久久99精品国产麻豆宅宅| 狠狠精品干练久久久无码中文字幕 | segui久久国产精品| 欧美亚洲国产精品久久久久| 精品一区二区久久久久久久网站| 久久综合精品国产一区二区三区| 精品久久久久久久| 久久精品成人欧美大片| 一级做a爰片久久毛片人呢| 久久精品国产第一区二区三区| 国产69精品久久久久99| 亚洲精品无码久久久久去q | 亚洲国产精品嫩草影院久久 | 怡红院日本一道日本久久 | 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 日产精品久久久久久久| 超级97碰碰碰碰久久久久最新| 伊人久久大香线蕉综合网站| 亚洲狠狠久久综合一区77777| 欧洲精品久久久av无码电影| 久久国产免费直播| 久久这里只精品99re66| 热RE99久久精品国产66热| 久久男人AV资源网站| 久久久精品午夜免费不卡| 亚洲国产精品婷婷久久| 99久久99这里只有免费的精品| 久久精品国产欧美日韩| 久久人人爽人人爽人人av东京热| 国产精品岛国久久久久| 久久久国产精品亚洲一区| 久久青青草原亚洲av无码app| 亚洲AV日韩精品久久久久久| 久久天天躁狠狠躁夜夜avapp| 久久精品天天中文字幕人妻 | 精品久久久中文字幕人妻|