ŧ (specular map):

:
ý ù° ǻ
ý ι° ŧ Ǿ

⺻ ι°н ؽĽɼǿ ÷κ ۷̼ ADD ϸ ˴ϴ.

ŧ κ(ũ) ԰ ҷ.. ù°н ǻʿ ĺκ մϴ..
İ 1 ŧ Դ°ɷ İ 0 ŧ Ǵ°..

̷ Ͻø ϴ ù°ؽ ǿɼ Ʈ ð..
ColorArg1 : Diffuse
ColorArg1 : Texture
ColorOp : Modulate
AlphaArg1 : Diffuse (¥ Ⱦ ǹǷ ׳ ŵ ˴ϴ.)
AlphaArg2 : Texture
AlphaOp : Modulate

ι°ؽ ǿɼ..
ColorArg1 : Current
ColorArg2 : Texture
ColorOp : ModulateAlphaAddColor
AlphaArg1 : Current
AlphaArg2 : Texture
AlphaOp : SelectArg2 (Ǿο ҽ İ 1̾߰.)

̷ Ͻø ˴ϴ. ŧ ϰ ø..(⺻ ũ/۷νʰ Բ)
ù° AlphaArg1 TextureFactor Ͻø ɰ ..
ؽ÷ ĸ ߵȴٸ.. ι° AlphaArg2 Diffuse ϸ ǰڳ׿..

׷īκ Ƽýĸ ϰ.. Ǿ ؽĸƮ ̿ؼ ؽǥ ڵ ؽ۸ Lock ʾƵ ǰ..
ǻ Ĵ ρ..( Ӹīſ ũ ϰڳ׿. ⺻ ǻ ĸ ״ ߵǴ..)
׷~

Zho:

غ

1) ؽ ̴, ǻ (oD0.a) ŧ .

2) ؽ , ؽ ǻ Ŀ ؽ ä մϴ.


ڵ:
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
SetTextureStageState(0, D3DTSS_ALPHAOP,     D3DTOP_MODULATE);

׷, ؽ ĸ ̹ ߿ ŧ 1 κи ߷ϴ.

3) ÷ ؽ , ÷ ĸ ִ ؽ Ͽ 2)
ŧ ŭ ݴϴ.


ڵ:
SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATECOLOR_ADDALPHA);


׷, ŧ Ǵ κп 󺸴
µ˴ϴ. , ŧ׸ ״ µǴ ͺٴ ŧ
ε巯 ̹ ǰ.

̰, ̰, 2 ̷ Ѱ 𸣰ڽϴ. ŧ ܼ ĸ
 , ƴϸ RGBҰ ִ δ 𸣰ڴ󱸿...

մ:

亯մϴ. ׻ ȣԿ ޳׿..^^;

1 ؽĴ  ؾϳ ϴٰ ƹ͵ 淡 0 ߸Űǰ ްŵ...


ڵ:
technique AniMesh_vs11_fix
{
    pass p0
    {
        Sampler[0] = <DiffuseMap>;

        TextureFactor = 0xffffffff;

        ColorOp[0]   = Modulate;
        ColorArg1[0] = Texture;
        ColorArg2[0] = Diffuse;

        AlphaOp[0]   = Modulate;
        AlphaArg1[0] = Texture;
        AlphaArg2[0] = Diffuse;

        ColorOp[1]   = ModulateColor_AddAlpha;
        ColorArg1[1] = Current;
        ColorArg2[1] = TFactor;

        VertexShader = compile vs_1_1 vsMain();
        PixelShader  = 0;
    }
}


ᱹ 1 ׳ tfactor ߴٴ..

̷ ؼ ذƳ׿..^^;

մϴ.

մ:

  VS ϳ׿..

ȣ Ͻ VS մϴ.

ڵ:
technique PatchSpecular_vs11_fix
{
    pass p0
    {
        // ⺻ؽ̹ + ŧ()
        Sampler[0] = <DiffuseMap>; 
// Ʈ + ĸ (׳ 뵵 ϽŴٸ rgb ĸʸ.. ) Sampler[1] = <LightMap>; ColorOp[0] = SelectArg2; ColorArg1[0] = Diffuse; ColorArg2[0] = Texture; AlphaOp[0] = Modulate; AlphaArg1[0] = Diffuse; AlphaArg2[0] = Texture; ColorOp[1] = ModulateColor_AddAlpha; ColorArg1[1] = Current; ColorArg2[1] = Texture; AlphaOp[1] = SelectArg2; AlphaArg1[1] = Current; AlphaArg2[1] = Texture; ColorOp[2] = Disable; AlphaOp[2] = Disable; VertexShader = compile vs_1_1 vsSpecular(); PixelShader = 0; } }

ؽ2 VS ȵǴ() ī ε ( ǰ..)

VS ؼ 2 ٴ° 밡ɼ ϰ Ŵ޷ ϳ׿..-_-;

kaiell:

2 ij δ ȣ ϼ̵ Ϲ specularδ ε巯 specular ʽϴ.

غ ǵ.

Irradiance map ϴµ.

ť̳ Ǿ ̿ (
irradiance map) ƴұ ˴ϴ.
̹ ť̳ Ǿ ü Specularü ϴ ε.

þߺͿ Ʈ ü ֺ͸ ̿Ͽ Irradiaceʿ شǴ ġ ÷ ãƼ ÷ ִ Դϴ.

̷ ҷ 2 ؽ(ťǰ쿡 δ 7^ ^) ε Ͽ Ǵµ G-Force2 ϰ. ׸ Vertex Shader 2 밡ϴϱ ʾ غ ְڳ׿.

Irradiance map ϴ Real-Time Rendering Second Edition p210 ø ˼ ǰ̴ϴ.


׸ ̹ DoA3 DoA ġ߸ . ^ ^

ο ü ε巯 specular ϼ ִٴ ְ.

δ ÿ ϱ ٴ ֽϴ.
( ׷ DoA3 ǹ οٰ ׿½ ȯ
Irradiance map ٲ ִ.  Ǽ ó Ǿ׿. )


kaiell:

ȣ 2 ÷ غôµ ȣ ´° ׿.

׷
Irradiance Ͽ κ Spcular ũϴ ߰Ͽ ϸ
ŷ մϴ. ׷, ̰쿡 Diffuse +
Irradiance + Irradiance Mask ̷ 3 ʿ. DoA3 ׸ ׷ Ͽ.( Diffuse äο Irradiance Mask͸ ִ´ٸ 2 ε ϰڳ׿ )

ȿ Ͽ ȣ Ͻ ְ ϴ.
( δ ȣ԰ Specular ༭ Specularũ Ϳ ϰ
Specular
Irradiance ̿Ͽ ؼ Specularũ Ϳ ϴ ΰ ׿. )

:

http://www.gpgstudy.com/forum/viewtopic.php?t=2318&postdays=0&postorder=asc&highlight=Irradiance&start=0