• <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>

            戰魂小筑

            討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

            #

            先測試:https://www.google.com

            如果無法打開,嘗試訪問

            http://www.google.com/ncr

            然后再打開

            https://www.google.com

            就不會轉向香港首頁

             

            Chrome中添加網址https://www.google.com/search?hl=zh-CN&q=%s

            不過SSL貌似不支持圖片搜搜,因此香港版的最好保留

            posted @ 2010-06-05 09:49 戰魂小筑 閱讀(681) | 評論 (0)編輯 收藏

            原文地址:http://zhaiyx.com/2010/06/ghost-fighter/

            一段類似于火柴人格斗的Flash動畫,不過華麗度卻絕非火柴人系列可以相比。更牛逼的是,動畫還支持鏡頭縮放和視角切換。

                     動畫很簡短,但值得一看。

            控制說明:
            右邊數字鍵盤1、2、3、4:切換鏡頭視角
            鼠標滾輪:放大/縮小鏡頭
            上下:控制播放速度
            左右:逐幀查看
            空格:播放/暫停
            S:打開/關閉音樂
            F:顯示/隱藏FPS
            Q:切換影片質量

            http://www.wacoool.com/up_files/flash/ghostfight.swf

            posted @ 2010-06-03 20:00 戰魂小筑 閱讀(545) | 評論 (0)編輯 收藏

            原文 http://www.cnblogs.com/cocoaleaves/archive/2009/09/25/1573683.html

            XNA里的很多例子提供了光照最基礎的教學,可惜XNA不是誰都喜歡, RenderMonkey才是Shader研究的王道工具, 鏈接里提供了例子下載,非常經典,不可不看

            posted @ 2010-06-03 11:57 戰魂小筑 閱讀(2669) | 評論 (0)編輯 收藏

            朋友給我了一個VS2010的一個BUG: 任意位置, CTRL+F打開搜索窗口,ESC關閉,不停的重復以上過程, 窗口將會不斷變大,關閉VS2010后再次打開依然保持大小.

            已經有人報過這個BUG, http://connect.microsoft.com/VisualStudio/feedback/details/555385/find-and-replace-window-changes-size-and-location

            posted @ 2010-06-02 22:55 戰魂小筑 閱讀(2271) | 評論 (3)編輯 收藏

            昨天研究了下Node Based Material System, 虛幻3的材質系統是沒戲了,還沒用會呢. 不過Max的一個插件: ShaderFX倒是給我很大的啟發,這東西就是結點型材質系統, 而且能生成真正的FX. 不像虛幻3那么不厚道,只是局部顯示HLSL.

            image

            經過分析ShaderFX導出的Shader文件, 發現其標準材質系統使用的就是逐像素光照模型, 而不同的Materials對應的就是一種Shader處理管線, 分別可以處理各種光照,甚至達到Compositor的混合效果. 而Shader Code Generation這個環節,也遠沒有虛幻3那樣復雜(虛幻是神,咱們不評論神到底如何),只是將光照需要的各種分量,例如Emissive, Ambient, Diffuse, Specular等根據各分量提供的計算因子直接嵌入到Pixel Shader主函數體即可.

            逐頂點光照在前面的文章已經有介紹,代碼相對簡單, 因此以后在材質系統中準備直接上逐像素光照. 因此,需要在我的模型插件中加入Tangent及Binormal支持.

            這里是一篇很不錯的講解Tangent Space Vector的文章. 文中有貼過OGRE的Tangent計算代碼,不過查閱OGRE 1.65代碼后發現,OGRE現在根本就不用這個函數計算Tangent,而是更為復雜的一個類.

            最終,我還是使用了大野豬的ev3d的max插件代碼, 如果需要的話,可以去他博客找svn下載

             

            bool CMaxMesh::__cacl_tbn(sFace_t& face,bool isSkin)
            {
                Point3  normal[3];
                Point3  Tangent; 
                Point3  p[3];
             
                assign(normal[0],m_MeshData.m_VertexData.m_Normals[face.vert[0]]);
                assign(normal[1],m_MeshData.m_VertexData.m_Normals[face.vert[1]]);
                assign(normal[2],m_MeshData.m_VertexData.m_Normals[face.vert[2]]);
             
                if(isSkin == false)
                {
                    assign(p[0],m_MeshData.m_VertexData.m_Positons[face.vert[0]]);
                    assign(p[1],m_MeshData.m_VertexData.m_Positons[face.vert[1]]);
                    assign(p[2],m_MeshData.m_VertexData.m_Positons[face.vert[2]]);
                }
                else
                {
                    assign(p[0],m_MeshData.m_VertexData.m_VertexWeights[face.vert[0]].m_InitPos);
                    assign(p[1],m_MeshData.m_VertexData.m_VertexWeights[face.vert[1]].m_InitPos);
                    assign(p[2],m_MeshData.m_VertexData.m_VertexWeights[face.vert[2]].m_InitPos);
                }
             
             
                sUVCoord_t uv[3];
                uv[0] = m_MeshData.m_VertexData.m_UVChannels[0][face.vert[0]];
                uv[1] = m_MeshData.m_VertexData.m_UVChannels[0][face.vert[1]];
                uv[2] = m_MeshData.m_VertexData.m_UVChannels[0][face.vert[2]];
             
                Point3  e1 = p[1] - p[0];
                Point3  e2 = p[2] - p[0];
                sUVCoord_t u1 = { uv[1].u - uv[0].u , uv[1].v - uv[0].v};
                sUVCoord_t u2 = { uv[2].u - uv[0].u , uv[2].v - uv[0].v};
             
                float det =  ( u1.u * u2.v - u2.u * u1.v);
                if(det == 0.0f)
                {
                    Tangent = e1;
                }
                else
                {
                    Tangent = u2.v * e1 - u1.v * e2;
                }
             
                //從Normal 和 Tangent里重新計算出Tangent,因為面的Tangent和頂點的Normal可能不垂直
                Point3 final_tangent;
                for(int i = 0 ;i < 3 ; ++i)
                {
                    Point3 binormal  = CrossProd(normal[i],Tangent);
                    final_tangent = CrossProd(binormal,normal[i]);
                    final_tangent.Normalize();
                    m_MeshData.m_VertexData.m_Tangents[face.vert[i]].x += final_tangent.x;
                    m_MeshData.m_VertexData.m_Tangents[face.vert[i]].y += final_tangent.y;
                    m_MeshData.m_VertexData.m_Tangents[face.vert[i]].z += final_tangent.z;
             
                }
                return true;
            }

             

            感謝大野豬友情出演,正片開始:)

            image

            posted @ 2010-06-02 15:55 戰魂小筑 閱讀(2108) | 評論 (2)編輯 收藏

            在Notepad++官網的User DefinedLanguage files下載一種你需要的自定義語言文件,例如HLSL

            將這個文件命名為userDefineLang.xml,并拷貝進以下目錄:

            XP: C:\Documents and Settings\[username]\Application Data\Notepad++

            Vista/Win7  C:\Users\[username]\AppData\Roaming\Notepad++

            如果已經有這種文件,將下載的文件內容手動添加到原文件

            這里推薦下OGRE官網的Cg自定義語言模板,這個標色比較不錯

            posted @ 2010-06-02 10:37 戰魂小筑 閱讀(6317) | 評論 (5)編輯 收藏

            DXSDK里光照模型的講解依然停留在DX9的固定管線時代; DX10及DX11的文檔里只是API文檔,居然一點基于Shader的光照模型講解文章都未見,失望.

            無奈, 打開NV官網,找到這樣一篇文章, 基于Cg語言的Shader標準光照模型講解, Bingo!

            了解標準光照基礎知識后,就不會面對MAX的材質系統, Maya的Node Based Material System感到陌生.

            這里貼下這組光照模型的Cg代碼

             

            float4x4 matViewProjection;
             
             
            float3 GlobalAmbient;
            float3 LightColor;
            float3 LightPosition;
            float4 EyePosition;
            float3 Ke;
            float3 Ka;
            float3 Kd;
            float3 Ks;
            float Shininess;
             
             
            void vs_main( 
               in float4 InPosition : POSITION,
               in float3 InNormal : NORMAL,
               out float4 OutPosition : POSITION,
               out float4 OutColor : COLOR0
             )
             
            {
             
               OutPosition = mul( InPosition, matViewProjection );
               
               float3 P = InPosition.xyz;
               float3 N = InNormal;
               
               // Compute the emissive term
               float3 Emissive = Ke;
               
                // Compute the ambient term
               float3 Ambient = Ka * GlobalAmbient;
               
               
               // Compute the diffuse term
               float3 L = normalize( LightPosition - P );
               float DiffuseLight = max( dot( N, L ), 0 );
               float3 Diffuse = Kd * LightColor * DiffuseLight;
               
               // Compute the specular term
               float3 V = normalize( EyePosition - P );
               float3 H = normalize( L + V );
               float SpecularLight = pow( max( dot( N, H ), 0 ), Shininess );
               
               if ( DiffuseLight <= 0 )  SpecularLight = 0;
               
               float3 Specular = Ks * LightColor * SpecularLight;
               OutColor.xyz = Emissive +  Ambient + Diffuse + Specular;
               OutColor.w = 1;   
            }
             
            float4 ps_main( float4 OutColor : COLOR0 ) : COLOR0
            {   
               return( OutColor );
               
            }
            posted @ 2010-06-01 14:51 戰魂小筑 閱讀(3429) | 評論 (1)編輯 收藏

            今天順利顯示靜態模型, 加上紋理后,發現ZBuffer好像有點不對勁

            image

            于是檢查D3DRS_ZENABLE,D3DRS_ZWRITEENABLE, 結果都是TRUE

            無奈,只有與我以前正確的Demo對比210個渲染狀態. 有部分渲染不同的,使用硬代碼強行糾正,結果: 無效

            懷疑頂點格式破損, 重新使用以前的模型格式,排除這個可能性, 結果:失敗

            無奈中,檢查設備選項, 突然注意到D3DPRESENT_PARAMETERS 結構體中的EnableAutoDepthStencil 設置是FALSE

            因為這次設備類是重寫的,對比以前正確代碼, 有差異,將其改為

            PresentParameters.EnableAutoDepthStencil    = TRUE;
                PresentParameters.AutoDepthStencilFormat    = D3DFMT_D16;

            以前翻閱SDK時,注意過這個選項, 這是由D3D幫你管理ZBuffer.

            測試, 問題解決.

             

            分析: 如果EnableAutoDepthStencil  = FALSE, 意味著連ZBuffer都沒有,那更不要說渲染狀態.

            image 正確結果

            posted @ 2010-05-26 17:01 戰魂小筑 閱讀(1971) | 評論 (5)編輯 收藏

            DXpipeline-9.0

            posted @ 2010-05-26 11:35 戰魂小筑 閱讀(4769) | 評論 (2)編輯 收藏

            轉載請注明: 戰魂小筑

            本文翻譯整理總結自http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter05.html

            如果喜歡,請購買正版

            多流技術在渲染時能對性能和結構有一定好處.但是怎樣將模型數據分配到各頂點數據流進行渲染就是一個學問.

             

            05_multistreaming_1

            對于頂點數據可以分為這么幾個大類:

            G: 多邊形數據, 包含vertex position, normal, and vertex color(s).

            T: 紋理映射, 包含多層紋理坐標及tangent vectors等

            A: 動畫數據, 骨骼動畫中的骨骼權重及骨骼索引

            I: 用于Instance繪制的用戶數據

             

            以下是對一些常用渲染的流搭配:

            靜態模型

               可以是: G or G + T

            骨骼動畫模型

               可以是:G + A or G + T + A

            Instance繪制的骨骼動畫模型

               可以是:G + I or G + T + I 或者動畫類型的G + A + I or G + T + A + I

            渲染Z-Pass物件

              可以是G, 或者動畫類型的G + A or G + I or G + A + I

            posted @ 2010-05-26 11:19 戰魂小筑 閱讀(1490) | 評論 (0)編輯 收藏

            僅列出標題
            共26頁: First 12 13 14 15 16 17 18 19 20 Last 
            久久九九久精品国产| 国产91久久综合| 久久这里只有精品首页| 精品久久久一二三区| 亚洲成色www久久网站夜月| 久久精品国产亚洲AV无码偷窥| 国产精品久久久久…| 久久久久国色AV免费观看| 久久亚洲国产精品成人AV秋霞| 97久久天天综合色天天综合色hd | 91久久精品无码一区二区毛片| 久久国产成人亚洲精品影院| 一本色道久久88—综合亚洲精品| 国产精品99久久久久久人| 日韩中文久久| 久久这里只精品国产99热| 久久久精品国产| 四虎国产精品免费久久久| 午夜欧美精品久久久久久久| 国产成人精品久久一区二区三区av | 免费无码国产欧美久久18| 精品久久久久久综合日本| 亚洲精品无码久久久久AV麻豆| 成人资源影音先锋久久资源网| 亚洲伊人久久成综合人影院| 久久久精品午夜免费不卡| 亚洲狠狠婷婷综合久久蜜芽| 久久久久久久综合日本| 欧美久久精品一级c片片| 久久久久久国产精品无码超碰| 色欲综合久久躁天天躁| 久久免费视频6| 色综合久久中文字幕无码| 亚洲午夜久久影院| 久久精品亚洲日本波多野结衣 | 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 99精品伊人久久久大香线蕉| 丰满少妇高潮惨叫久久久| 99久久精品国产一区二区| 久久亚洲中文字幕精品一区| 欧美伊人久久大香线蕉综合|