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

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

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

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

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

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

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

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

              閱讀全文
            posted @ 2009-01-30 06:54 陳梓瀚(vczh) 閱讀(2552) | 評論 (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) 閱讀(2197) | 評論 (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) 閱讀(1781) | 評論 (0)編輯 收藏
                 摘要: 明天得開始研究別人是怎么處理材質的了。目前使用的方法是(反射來源×反射基準)×折射比率+(光源×材質顏色)×(1-折射比率)+[(折射來源+底面反射)×衰減+(1-衰減)]×透明物體內部顏色減。等材質完全做完之后,目前的渲染算法就可以為GI服務了。最后是計算混合的代碼:  閱讀全文
            posted @ 2009-01-22 06:02 陳梓瀚(vczh) 閱讀(2212) | 評論 (2)編輯 收藏
                 摘要: 由于一時找不到題目寫,所以這兩天就搞了一個簡單的基于光線追蹤的軟件渲染器。準備花點時間做下去了。從昨天開始到現在實現的東西有反射、陰影、多光源、線性變換等。
              閱讀全文
            posted @ 2009-01-19 00:48 陳梓瀚(vczh) 閱讀(4068) | 評論 (5)編輯 收藏
            僅列出標題
            共35頁: First 19 20 21 22 23 24 25 26 27 Last 
            久久国产精品无码一区二区三区 | 色综合久久综合中文综合网| 国产精品久久久香蕉| 亚洲精品蜜桃久久久久久| 国产亚洲欧美精品久久久| A级毛片无码久久精品免费| 四虎久久影院| 精品国际久久久久999波多野| 精品欧美一区二区三区久久久| 久久午夜免费视频| 久久久久夜夜夜精品国产| 精品久久久久久久久久中文字幕 | 无码超乳爆乳中文字幕久久| 精品国产一区二区三区久久| 国内精品伊人久久久久妇| 好久久免费视频高清| 精品国产青草久久久久福利| 精品久久久久国产免费| 久久精品国产亚洲AV大全| 久久久亚洲AV波多野结衣| 久久久久99精品成人片| 热久久国产精品| jizzjizz国产精品久久| 亚洲精品乱码久久久久久久久久久久 | 久久久久久极精品久久久| 2020久久精品国产免费| 狠狠色噜噜色狠狠狠综合久久| 久久久精品久久久久久| 国产精品久久久久久久午夜片| 狠狠色丁香久久婷婷综合五月| 婷婷久久久亚洲欧洲日产国码AV| 无码任你躁久久久久久老妇App| 久久久WWW成人免费精品| 久久精品99无色码中文字幕| 99久久精品国产毛片| 国产精品欧美亚洲韩国日本久久| 久久综合久久综合久久| 国产精品免费久久久久影院| 久久99精品国产99久久6| 久久精品成人免费国产片小草| 欧美大战日韩91综合一区婷婷久久青草|