游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1160|回复: 0

XFile Model with cartoon shadering

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2006-10-24 21:49:00 | 显示全部楼层 |阅读模式
????例是Introduction to 3D Game porgramming with DirectX9.0的Chapter 19\CartoonEffect
我想改成XFile的模型也可以用Cartoon Shaderinng

可是Vertex Shader如何用???Texture,一??是Cartoon Shadering,一??是XFile的Texture
???混合是否要用到Pixel Shader?
我???如何改? "XFile的模型才可以用Cartoon Shaderinng"?

PS:附件是Source code.

//#define XFILENAME "bigship1.x"
#define XFILENAME "tank.X"

content in "tooneffect_xfile.txt"

extern texture ColorMap;

struct VS_INPUT
{
    vector position : POSITION;
    vector normal   : NORMAL;
    float2 uvTex_color : TEXCOORD1;//add
};

struct VS_OUTPUT
{
    vector position : POSITION;
    float2 uvCoords : TEXCOORD;
    float2 uvTex_color : TEXCOORD1;//add
    vector diffuse  : COLOR;
};

VS_OUTPUT Main(VS_INPUT input)
{
    // zero out each member in output
    VS_OUTPUT output = (VS_OUTPUT)0;
   
    output.uvTex_color=input.uvTex_color;//add


//content in tooneffect.cpp

                //boundingSphere;

                float scale;
                scale=2.5f/boundingSphere._radius;

                D3DXMatrixScaling(&scaleMatrix,scale,scale,scale);//0.02f

                D3DXMATRIX translateMatrix;
                D3DXMatrixTranslation(&translateMatrix,  5.0f,  0.0f, 0.0f);
                D3DXMatrixMultiply(&translateMatrix,&scaleMatrix,&translateMatrix);

                WorldView     = translateMatrix * view;
                WorldViewProj = translateMatrix * view * ProjMatrix;

                ToonEffect_XFile->SetTechnique( ToonTechHandle_XFile );

                ToonEffect_XFile->SetMatrix(WorldViewHandle_XFile,&WorldView);
                ToonEffect_XFile->SetMatrix(WorldViewProjHandle_XFile,&WorldViewProj);
               
                ToonEffect_XFile->Begin(&numPasses, 0);

                for(int i = 0; i < numPasses; i++)
                {
                        for(int i = 0; i < Mtrls.size(); i++)
                        {
                                D3DXVECTOR4 tmpColor;

                                tmpColor=D3DXVECTOR4(Mtrls.Diffuse.r,Mtrls.Diffuse.g,Mtrls.Diffuse.b,Mtrls.Diffuse.a);

                                ToonEffect_XFile->SetVector(ColorHandle_XFile, &tmpColor);

                                //Device->SetMaterial( &Mtrls );
                                //Device->SetTexture(0, Textures);

                                ///if (Textures)
                                //        ToonEffect_XFile->SetTexture(ColorTexHandle_XFile, Textures);

                                ToonEffect_XFile->BeginPass(0);
                                Mesh->DrawSubset(i);
                                ToonEffect_XFile->EndPass();
                        }
                }
               
                Device->EndScene();
                Device-&gtresent(0, 0, 0, 0);
       
                ToonEffect->End();
                ToonEffect_XFile->End();

sf_20061024214830.zip

273.75 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 16:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表