본문 바로가기

기본 쉐이더7

Rim Lighting 의 원리와 공식 먼저 쉐이더 코드로 구현하면 float3 vCameraPos = normalize(vCameraPos-v.Pos);float3 RimLightColor =smoothstep(1.0f-rimWidth, 1.0f, 1-max(0,dot(v.nor,vCameraPos)); - 설명 1-max(0,dot(v.nor,vCameraPos)카메라 벡터와 오브젝트의 법선벡터를 내적해서 나온 값을 판별 smoothstep(min,max,x)x의 값을 min과 max의 사이값을 보간한다이때의 보간형식은 Hermit 보간(spline 보간)을 사용한다. 최대값을 1로 rimWidth 값을 설정해외곽선판별을 해서 나온 값에 대해 나온값을 RimLightColor 로 설정한다는 것이다여기에 Diffuse 값과 + 연산을 사용하.. 2011. 8. 27.
Half Lambert 의 원리와 공식 하프라이프2에 사용된 Half Lambert 입니다. 쉐이더 코드는 아래와 같습니다. ---------------------------------------------------------------- // 기본 Lambert 조명공식 //float fHalfLambert = dot( v.nor, -vGlobalLightDir ); //기본 Half Lambert 조명공식 float fHalfLambert = dot( v.nor, -vGlobalLightDir ) * 0.5f + 0.5f; ---------------------------------------------------------------- 2010. 12. 9.
스터디 - Fx(UV맵을 활용한 효과) 소스는 라이팅을 뺀 기본 맵핑 소스로만 구성하였다. 그리고 빨간색으로 된 부분은 금일 공부할 내용들이다. ======================================================================================== //------------------------------------ float4x4 matWVP : WorldViewProjection; texture diffuseTexture ; sampler diffuseSampler = sampler_state { texture = ; }; float time : TIME; // 쉐이더에서 유일하게 가변변수로 사용할수 있.. 2010. 12. 4.
스터디 - 스페큘러맵 오늘 부터 추가된 내용은 빨간색으로 구별하도록 하겠다... 스페큘러맵... 보통 알고 있는걸로는 빛이 없을때 빛이 있는것 처럼 하기 위해서 사용하는걸로 많이 알고 있다... 하지만 쉐이더에서의 스페큘러맵의 새로운 적용 방법에 대해서 엄청난 대발견이 있었다... 바로 아닌 알파채널에 등록된 스페큘러 맵으로 라이트마스크 같은 효과로 한개의 텍스쳐와 모델링에서 각기 다른 재질감을 표현할 수 있다는 것이다. ========================================================================================== //------------------------------------ float4x4 matWVP : WorldViewProjection; flo.. 2010. 11. 28.