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

            公告

            聯系我:我的126郵箱: billhsu。 Locations of visitors to this page
            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            • 隨筆 - 41
            • 文章 - 0
            • 評論 - 82
            • 引用 - 0

            常用鏈接

            留言簿(16)

            隨筆分類

            隨筆檔案

            相冊

            Game Dev

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            基于shader的骨骼蒙皮計算
            我的古董顯卡很操蛋,好端端的shader,傳骨骼矩陣進去,硬是沒反應。。
            尋尋覓覓,找到了 NVIDIA SDK 的example,終于解決了。
            難道我的顯卡不支持BLENDINDICES和BLENDWEIGHT?
            BLENDINDICES和BLENDWEIGHTTEXCOORD[n]表示才正常。。
            不說廢話,直接上代碼。
            matrix?ViewProjMatrix;
            float4x3????bones[70]?:?WORLDMATRIXARRAY;
            struct?VS_INPUT
            {
            float3?Position??:?POSITION;
            float3?Normal????:?NORMAL0;
            float2?TexCoord0?:?TEXCOORD0;
            float4?Weights:TEXCOORD1;
            float4?Indices:TEXCOORD2;
            };


            struct?VS_OUTPUT
            {
            float4??Pos?????:?POSITION;
            float3??Diffuse?:?COLOR;
            float2??Tex0????:?TEXCOORD0;
            };


            VS_OUTPUT?main(VS_INPUT?input)
            {
            VS_OUTPUT?output?
            =?(VS_OUTPUT)0;
            float3??????Normal?
            =?0.0f;????

            float?i;????????//?Index?into?matrix?palette

            float4?inPos;
            inPos.xyz?
            =?input.Position;
            inPos.w?
            =?1;

            float3?tempPos,?tempNormal;

            /////////////////////////////////////////////////////////////////////
            ????//?FIRST?BONE
            //?We?don't?worry?about?the?ELSE?condition?because?we?defined?the?
            //?initial?conditions.

            //?grab?first?bone?matrix
            ????i?=?input.Indices.x;

            //?First?transformed?position?and?normal
            ????tempPos?=?mul(inPos,?bones[i])?*?input.Weights.x;
            tempNormal?
            =?mul(input.Normal,?(float3x3)bones[i])?*?input.Weights.x;

            /////////////////////////////////////////////////////////////////////
            ????//?SECOND?BONE
            //?Next?bone.

            i?
            =?input.Indices.y;

            //?Add?second?transformed?position?and?normal
            ????tempPos?+=?mul(inPos,?bones[i])?*?input.Weights.y;
            tempNormal?
            +=?mul(input.Normal,?(float3x3)bones[i])?*?input.Weights.y;

            /////////////////////////////////////////////////////////////////////
            ????//?THIRD?BONE
            //?Note?we?only?skin?the?normal?by?the?first?two?bones,?these?are?by?
            //?far?the?most?significant.

            i?
            =?input.Indices.z;

            //?Add?third?transformed?position?only
            ????tempPos?+=?mul(inPos,?bones[i])?*?input.Weights.z;

            /////////////////////////////////////////////////////////////////////
            ????//?FOURTH?BONE

            i?
            =?input.Indices.w;

            //?Add?fourth?transformed?position?only
            ????tempPos?+=?mul(inPos,?bones[i])?*?input.Weights.w;

            //?normalize?normals
            ????Normal?=?normalize(tempNormal);
            //OUT.Diffuse.xyz?=?max(dot(Normal,?lhtDir),?0).xxx;
            ????output.Diffuse.x=1;
            output.Diffuse.y
            =1;
            output.Diffuse.z
            =1;


            //?copy?the?input?texture?coordinate?through
            ????output.Tex0??=?input.TexCoord0.xy;

            float4?finalPos;
            finalPos.xyz?
            =?tempPos;
            finalPos.w?
            =?1;

            //?Transform?the?final?skinned?position
            ????output.Pos?=?mul(finalPos,?ViewProjMatrix);
            return?output;
            }

            posted on 2010-04-01 22:10 Bill Hsu 閱讀(1034) 評論(0)  編輯 收藏 引用 所屬分類: Game DevAlgorithm

            久久99国产精品久久久| 亚洲国产精品一区二区久久| 亚洲v国产v天堂a无码久久| 久久久久一本毛久久久| 亚洲精品NV久久久久久久久久| 亚洲欧洲精品成人久久曰影片| 中文精品99久久国产| 亚洲国产另类久久久精品黑人| 国产精品久久久久无码av| 久久97久久97精品免视看秋霞 | 亚洲国产成人久久笫一页| 久久婷婷人人澡人人爽人人爱| 久久av无码专区亚洲av桃花岛| 狠狠人妻久久久久久综合蜜桃| 久久久www免费人成精品| 日本三级久久网| 色综合久久无码中文字幕| 免费观看成人久久网免费观看| 精品综合久久久久久97| 久久精品无码免费不卡| 国产精品久久久久久久久免费| 国产精品久久久久a影院| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久精品国产网红主播| 人妻丰满?V无码久久不卡| 久久精品a亚洲国产v高清不卡| 久久久久99精品成人片三人毛片 | 中文字幕乱码久久午夜| 久久精品国产一区二区电影| 国产成人精品久久二区二区| 亚洲国产欧美国产综合久久| 久久人人青草97香蕉| 久久天天躁狠狠躁夜夜2020老熟妇 | 久久无码一区二区三区少妇| 久久电影网一区| 久久婷婷国产麻豆91天堂| 99久久精品国内| 99久久免费只有精品国产| 亚洲伊人久久大香线蕉苏妲己| 99国产欧美久久久精品蜜芽| 色婷婷综合久久久久中文|