목록공부/3D강의 (101)
응애맘마조

학원 휴무가 끝나고 environment에 대해 강의했습니다. #pragma once class MaterialBuffer { public: Colorambient; Colordiffuse; Colorspecular; Coloremissive; floatshininess; floatopacity; float environment; floatshadow; }; class Material : public MaterialBuffer { static ID3D11Buffer* materialBuffer; public: static void CreateStaticMember(); static void DeleteStaticMember(); public: shared_ptrnormalMap; shared_ptrdif..
어제의 조명을 이어서 했습니다. cbuffer PS_DirLight : register(b2) { float4 DirLight; float4 DirColor; } #define MAX_LIGHT 16 struct Light { //4 int isActive; int Type; float Inner; float Outer; // int Size; float3 Direction; //4 float3 Position; float Range; //4 float4 Color; }; cbuffer PS_Lights : register(b3) { Light lights[MAX_LIGHT]; } hlsl로 먼저 조명을 구현할 수 있도록 했습니다. #pragma once struct DirLight { Vector4di..

조명에 대해 마지막인 Emissive에 대해서 강의했습니다. 오늘 다 끝내지는 못했고 내일 마무리가 될 것 같습니다. 여기서는 텍스쳐나 모델에서 자체발광이라고 생각하면 편할 것 같습니다. float3 DirLighting(float3 BaseColor, float3 SpecularMap, float3 Normal, float3 wPostion) { float3 DirectionLight = normalize(DirLight.xyz); float Diffuse = saturate(dot(-DirectionLight, Normal)); float3 RecflectLight = reflect(DirectionLight, Normal); float3 ViewDir = normalize(ViewPos.xyz - ..
어제에 이어서 큐브 맵을 강의 했고 완성했습니다. #include "Common.hlsl" struct VertexInput { float4 Position : POSITION0; }; struct PixelInput { float4 Position : SV_POSITION; float3 Uv : UV0; }; PixelInput VS(VertexInput input) { PixelInput output; output.Uv = normalize(input.Position.xyz); output.Position = input.Position; output.Position.xyz = mul(output.Position.xyz, (float3x3) World); output.Position.xyz = mul(..
이제 터레인으로써 맵 에디터는 어제일자로 마무리가 되었고 오늘부터 배경을 위한 큐브맵을 스카이 박스에 적용시키기 위한 강의를 했었습니다. #pragma once class RasterState :public Singleton { private: ID3D11RasterizerState* CullBackFillSolid; ID3D11RasterizerState* CullFrontFillSolid; ID3D11RasterizerState* CullNoneFillSolid; ID3D11RasterizerState* CullBackWireFrame; ID3D11RasterizerState* CullFrontWireFrame; ID3D11RasterizerState* CullNoneWireFrame; public:..