17
GraphGame gg006-Shade árnyalás Szécsi László

Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Embed Size (px)

Citation preview

Page 1: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

GraphGamegg006-Shade

árnyalás

Szécsi László

Page 2: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Textúrafile

• giraffe.jpg letöltése• SolutionDir/Media folderbe

Page 3: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

gg006-Shade project

• copy-paste-rename gg005-Cam folder• vcxproj, filters átnevezés• solution/add existing project• rename project• working dir: $(SolutionDir)• Project Properties/Configuration

Properties/Debugging/Command Arguments--solutionPath:"$(SolutionDir)" --projectPath:"$(ProjectDir)"

• build, run

Page 4: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Új fx file

• solution fx folderbe• shaded.fx

Page 5: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fx#include <basic.fx>

float3 lightPos = float3(1, 1, 1);float3 lightPower =

float3(50, 50, 50);float3 kd = float3(1, 0, 1); //lila

#7.0

Page 6: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fxfloat4 psDiffuse(VsosTrafo input) : SV_Target {

float3 normal = normalize(input.normal);float3 toLight = lightPos -

input.worldPos.xyz;float3 lightDist2 = dot(toLight, toLight);float3 lightDir = normalize(toLight);return float4(

kd * saturate(dot(lightDir, normal))* lightPower / (4 * 3.14 * lightDist2), 1);

}

#7.1

Page 7: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fx

technique11 shaded{pass diffuse{

SetVertexShader ( CompileShader( vs_5_0, vsTrafo() ) );

SetPixelShader( CompileShader( ps_5_0, psDiffuse() ) );}

}

#7.1

Page 8: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/main.fx#include <shaded.fx>// and nothing else

#7.1

Page 9: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Game.cppID3DX11EffectPass* basicPass = effect->GetTechniqueByName("idleshaded")->GetPassByName("idlediffuse");

Egg::Mesh::Material::P idleshadedMaterial = Egg::Mesh::Material::create(basicPass, 0);

shadedMesh = binder->bindMaterial(idleshadedMaterial, indexedMesh);

#8.0

Page 10: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Diffúzan árnyalt mesh

Page 11: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fxfloat3 eyePos;

float3 ks = float3(10, 10, 10);float n = 10;

#7.1

Page 12: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Game::rendereffect->GetVariableByName("eyePos")->AsMatrix()->SetMatrix( (float*)&firstPersonCam->getEyePosition()

);

#8.0

Page 13: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fxfloat4 psSpecular(VsosTrafo input) : SV_Target {

float3 normal = normalize(input.normal);float3 toLight = lightPos - input.worldPos.xyz;float3 lightDist2 = dot(toLight, toLight);float3 lightDir = normalize(toLight);float3 toEye = eyePos - input.worldPos.xyz;float3 viewDir = normalize(toEye);return float4(

(kd * saturate(dot(lightDir, normal))+ ks * pow(

saturate(dot(reflect(-viewDir, normal),lightDir)), n) )

* lightPower / (4 * 3.14 * lightDist2), 1);

}

#7.1

Page 14: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

fx/shaded.fxtechnique11 shaded { pass diffuse { SetVertexShader ( CompileShader( vs_5_0, vsTrafo() ) );

SetPixelShader( CompileShader( ps_5_0, psDiffuse() ) );

} pass specular { SetVertexShader ( CompileShader( vs_5_0, vsTrafo() ) );

SetPixelShader( CompileShader( ps_5_0, psSpecular() ) );

}}

#7.1

Page 15: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Game.cppID3DX11EffectPass* basicPass = effect->GetTechniqueByName("shaded")->GetPassByName("diffusespecular");

Egg::Mesh::Material::P shadedMaterial = Egg::Mesh::Material::create(basicPass, 0);

shadedMesh = binder->bindMaterial(shadedMaterial, indexedMesh);

#8.0

Page 16: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

Műanyagzsiráf

Page 17: Árnyalás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe

FELADAT

• keringő fényforrás– animate metódusban a fénypozíció újrabeállítása