青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Code Knight

Programming is so cool
隨筆 - 52, 文章 - 0, 評(píng)論 - 14, 引用 - 0
數(shù)據(jù)加載中……

圖形學(xué)學(xué)習(xí)筆記2(cel-shading分析)

 

參看word文檔
// -------------------------------

// Cel Shading Section

// -------------------------------

vertex_program Ogre/CelShadingVP cg

{

    source Example_CelShading.cg

    entry_point main_vp

    profiles vs_1_1 arbvp1

 

    default_params

    {

        param_named_auto lightPosition light_position_object_space 0        param_named_auto eyePosition camera_position_object_space

        param_named_auto worldViewProj worldviewproj_matrix

        param_named shininess float 10

    }

}

 

fragment_program Ogre/CelShadingFP cg

{

    source Example_CelShading.cg

    entry_point main_fp

    profiles ps_1_1 arbfp1 fp20

}

 

 

material Examples/CelShading

{

    technique

    {

        pass

        {

            vertex_program_ref Ogre/CelShadingVP

            {

                // map shininess from custom renderable param 1

                param_named_auto shininess custom 1

// 終于知道param_named_auto第三個(gè)參數(shù)的作用了,用于給程序中賦值的索引

sub->setCustomParameter(CUSTOM_SHININESS, Vector4(10.0f, 0.0f, 0.0f, 0.0f)); CUSTOM_SHININESS == 1

            }

            fragment_program_ref Ogre/CelShadingFP

            {

                // map diffuse from custom renderable param 2

                param_named_auto diffuse custom 2

                // map specular from custom renderable param 2

                param_named_auto specular custom 3

            }

            texture_unit

            {

                texture cel_shading_diffuse.png 1d

                tex_address_mode clamp

                filtering none

            }

            texture_unit

            {

                texture cel_shading_specular.png 1d

                tex_address_mode clamp

                filtering none

            }

            texture_unit

            {

                texture cel_shading_edge.png 1d

                tex_address_mode clamp

                filtering none

            }

        }

    }

   

}

 

 

////////////////////////////////////////////////////////////////////////////////////下面是cg文件

////////////////////////////////////////////////////////////////////////////////

 

/* Cel shading vertex program for single-pass rendering

   In this program, we want to calculate the diffuse and specular

   ramp components, and the edge factor (for doing simple outlining)

   For the outlining to look good, we need a pretty well curved model.

*/

void main_vp(float4 position    : POSITION,

             float3 normal      : NORMAL,[U1] 

             // outputs

             out float4 oPosition    : POSITION,

             out float diffuse     : TEXCOORD0,

             out float specular    : TEXCOORD1,

             out float edge        : TEXCOORD2,[U2] 

             // parameters

             uniform float3 lightPosition, // object space:世界坐標(biāo)系

             uniform float3 eyePosition,   // object space

             uniform float4 shininess,

             uniform float4x4 worldViewProj)

{

    // calculate output position

    oPosition = mul(worldViewProj, position);

 

    // calculate light vector

    float3 N = normalize(normal);

    float3 L = normalize(lightPosition - position.xyz);

   

    // Calculate diffuse component

    diffuse = max(dot(N, L) , 0);

 

    // Calculate specular component

    float3 E = normalize(eyePosition - position.xyz);

    float3 H = normalize(L + E);

    specular = pow(max(dot(N, H), 0), shininess[U3] );

    // Mask off specular if diffuse is 0

    if (diffuse == 0) specular = 0;

 

    // Edge detection, dot eye and normal vectors

    edge = max(dot(N, E), 0); // 法線與視線平行的點(diǎn)認(rèn)為是標(biāo)遠(yuǎn),給予黑色溝邊

}

 

void main_fp(float diffuseIn    : TEXCOORD0,

             float specularIn   : TEXCOORD1,

             float edge         : TEXCOORD2,

[U4]            

             out float4 colour : COLOR,

             

             uniform float4 diffuse,

             uniform float4 specular,

             

             uniform sampler1D diffuseRamp,

             uniform sampler1D specularRamp,

             uniform sampler1D edgeRamp[U5] )

{

    // Step functions from textures

    diffuseIn = tex1D(diffuseRamp, diffuseIn).x;

    specularIn = tex1D(specularRamp, specularIn).x;

    edge = tex1D(edgeRamp, edge).x;

 

    colour = edge * ((diffuse * diffuseIn) +

                    (specular * specularIn));

}


 [U1]這里是GPU傳進(jìn)來(lái)的,POSITION:頂點(diǎn)坐標(biāo),NORMAL法線,去看看hlsl的語(yǔ)意定義

 [U2]out都是輸出參數(shù),改變他們的值輸出之后被ps獲取

 [U3]m下標(biāo)gls,為材料的光澤度

 [U4]得到的是vsout出來(lái)的值

 [U5]texture_unit中得到,順序根據(jù)定義的順序texture_unit

                     {

                            texture cel_shading_diffuse.png 1d

                            tex_address_mode clamp

                            filtering none

                     }

                     texture_unit

                     {

                            texture cel_shading_specular.png 1d

                            tex_address_mode clamp

                            filtering none

                     }

                     texture_unit

                     {

                            texture cel_shading_edge.png 1d

                            tex_address_mode clamp

                            filtering none

                     }

posted on 2010-02-23 21:14 Code Knight 閱讀(771) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 圖形學(xué)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲黄一区二区三区| 亚洲婷婷在线| 欧美一区二区三区日韩| 亚洲视频电影在线| 国产精品盗摄一区二区三区| 亚洲自拍16p| 午夜视频久久久| 极品尤物久久久av免费看| 久热这里只精品99re8久| 久久天堂精品| 99re8这里有精品热视频免费 | 久久久久久亚洲精品不卡4k岛国| 午夜精品视频在线观看一区二区| 国产一区再线| 亚洲国产精品va在看黑人| 欧美日韩国产123区| 午夜视频一区在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲第一在线| 一本久久精品一区二区| 国产亚洲欧美中文| 亚洲国产高清一区| 国产精品美女www爽爽爽视频| 久久人人爽爽爽人久久久| 欧美sm视频| 性做久久久久久| 欧美jizzhd精品欧美巨大免费| 午夜精品久久久久久99热软件| 久久久久国产精品午夜一区| 日韩视频国产视频| 性欧美8khd高清极品| 亚洲日本一区二区| 欧美一区二区三区四区在线| 日韩亚洲成人av在线| 久久精品99| 午夜激情亚洲| 欧美激情一区二区三区全黄| 久久精品国产久精国产一老狼| 欧美大秀在线观看| 久久午夜精品一区二区| 国产精品久久久久久超碰| 亚洲电影av| 亚洲第一精品夜夜躁人人爽| 亚洲午夜精品久久久久久浪潮| 91久久在线播放| 久久精品欧洲| 久久精品国产精品亚洲精品| 国产精品国产馆在线真实露脸| 欧美高清不卡在线| 一区二区三区在线看| 亚洲一区二区三区高清不卡| 99视频有精品| 欧美电影在线播放| 欧美a级在线| 国内不卡一区二区三区| 欧美伊人久久久久久午夜久久久久 | 国产真实久久| 亚洲欧美国内爽妇网| 亚洲一二三级电影| 欧美人在线观看| 亚洲精品免费看| 亚洲六月丁香色婷婷综合久久| 鲁大师成人一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频| 国产片一区二区| 欧美在线免费一级片| 久久精品国产视频| 禁久久精品乱码| 美女福利精品视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲国产成人av在线| 久久综合中文| 亚洲精品久久久久久一区二区| 99在线精品观看| 国产精品久久久久久久7电影| 亚洲一区二区精品在线| 午夜在线精品偷拍| 国产在线精品二区| 久久亚洲图片| 亚洲破处大片| 亚洲尤物视频网| 国产午夜精品麻豆| 美日韩精品视频免费看| 日韩亚洲在线观看| 欧美一区二区三区四区在线观看地址| 国产精品一区视频| 久久蜜桃资源一区二区老牛| 欧美激情aaaa| 欧美亚洲日本网站| 一区在线观看| 欧美日韩一区二区视频在线观看| 亚洲主播在线观看| 免费日本视频一区| 亚洲视频在线看| 国产一区二区三区奇米久涩| 免费观看欧美在线视频的网站| 日韩视频中文| 麻豆精品网站| 亚洲一区二区日本| 怡红院精品视频| 欧美视频精品在线| 久久九九热re6这里有精品| 亚洲国语精品自产拍在线观看| 午夜视频久久久久久| 亚洲欧洲精品成人久久奇米网| 国产精品地址| 久久亚洲电影| 亚洲女人天堂av| 亚洲青涩在线| 欧美成人精品在线观看| 午夜在线a亚洲v天堂网2018| 亚洲国产精品v| 国产欧美日韩91| 欧美日韩一区二区三区免费| 久久久噜噜噜久久中文字免| 正在播放亚洲一区| 亚洲黄色片网站| 乱人伦精品视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲福利视频网| 国产婷婷成人久久av免费高清 | 亚洲综合精品四区| 亚洲风情在线资源站| 久久久综合网| 欧美影院视频| 亚洲免费在线| 久久精品国产77777蜜臀| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久午夜视频| 欧美在线播放| 午夜久久久久久| 亚洲综合久久久久| 亚洲午夜视频在线| 一区二区激情小说| 99精品欧美| 一区二区欧美精品| 亚洲精选在线观看| 亚洲人成免费| 亚洲精品一区二区三区福利| 在线免费高清一区二区三区| 国产一区二区三区四区hd| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩亚洲免费| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩另类丝袜其他| 欧美三级在线播放| 国产精品99免费看| 国产精品视频精品| 国产女主播视频一区二区| 国产日韩欧美在线播放| 国产一区二区三区自拍| 国产一区二区丝袜高跟鞋图片| 韩国自拍一区| 亚洲国产影院| 99精品视频免费全部在线| 亚洲图片在区色| 欧美一区91| 麻豆精品在线播放| 亚洲二区在线| 一区二区三区免费看| 新67194成人永久网站| 久久久噜噜噜久久| 欧美精品18videos性欧美| 欧美四级在线观看| 国产亚洲激情视频在线| 在线观看一区欧美| 久久高清福利视频| 久久er精品视频| 欧美韩国在线| 中日韩视频在线观看| 欧美一进一出视频| 亚洲三级影院| 欧美日韩另类字幕中文| 国产无遮挡一区二区三区毛片日本| 在线日本高清免费不卡| 一区二区日韩精品| 国产精品男gay被猛男狂揉视频| 国产性天天综合网| 99视频一区二区三区| 亚洲第一精品夜夜躁人人爽| 亚洲精品一区在线观看| 欧美自拍偷拍| 国产精品jvid在线观看蜜臀| 国产一区二三区| 亚洲香蕉伊综合在人在线视看| 国产亚洲福利| 亚洲小说区图片区| 欧美成人精品福利| 亚洲欧美一区二区激情| 欧美福利视频在线| 国产一区二区在线观看免费| 亚洲午夜av电影| 欧美国产一区二区三区激情无套| 亚洲欧美日本伦理| 欧美日本一区二区高清播放视频| 尤物yw午夜国产精品视频| 午夜国产精品视频免费体验区| 91久久精品美女| 另类成人小视频在线| 国产亚洲精久久久久久|