일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 윈도우 프로그래밍
- win32
- Win32 API
- 컴퓨터 아키텍쳐
- 렌더링
- Mesh Processing
- denoising
- Geometry Modeling
- 오픈지엘
- 운영체제
- shader programming
- modeling
- shader
- 윈도우프로그래밍
- 베지에 곡선
- c4d
- OpenGL
- MFC
- 셰이더
- MFC 윈도우 프로그래밍
- Graphics
- 그래픽스
- 윈도우 구조
- 컴퓨터 구조
- bezier curve
- 윈도우
- window programming
- 핵심 API로 배우는 윈도우프로그래밍
- 셰이더프로그래밍
- 그래픽스기초
- Today
- Total
목록컴퓨터 그래픽스 (75)
오다기리 박의 알고리즘 노트
10. 그림자매핑그림자 생성단계:렌더링 결과(빛을 가로막는 첫 번째 물체의 깊이)를 저장할 렌더타깃을 정해준다.카메라를 광원의 위치에 두고 물체들을 그린다.픽셀셰이더에서 빛으로부터 현재 픽셀까지의 깊이를 반환한다.그림자 적용단계:렌더링 결과(일반 장면 렌더링)를 화면(백버퍼)에 저장한다.카메라를 눈의 위치에 두고 물체들을 그린다.빛으로부터 현재 픽셀까지의 깊이를 그림자맵에 담겨있는 결과와 비교한다. (현재깊이>그림자맵의깊이) 라면 그림자를 씌운다. ■ 그림자매핑에서 발전한 고급 기법캐스케이드 그림자맵 : 그림자매핑의 해상도 문제점을 해결하기 위하여 영역별로 여러 개의 그림자맵을 만드는 기법.퍼센티지 클로저 필터링 : 그림자의 외곽선을 부드럽게 필터링 해주기 위해 사용.배리언스 그림자맵 : 하드웨어 텍스처..
9. UV애니메이션 시간이 흐름에 따라 U좌표에 더해주는 값을 서서히 증가시키거나 빼주면 텍스처 흐름효과를 낼 수 있다. (정점셰이더역할)정점위치에 Y값을 적당히 증감해주면 울렁효과를 낼 수 있다. (정점셰이더 역할) ■ 기타 고급 정점셰이더 기법스키닝 : CPU에서 스키닝처럼, 정점솅더에서도 동일하게 할 수 있음. BLENDWEIGHT와 BLENDINDICES 시맨틱 이용하면 정점데이터에서 스키닝 정보를 가져올 수 있음. 이제 최종 애니메이션 행렬들을 저역변수로 건네 받으면 CPU에서 하는 스키닝과 다를게 없다. 전역변수를 이용하지 않고 최종 애니메이션 행렬들을 텍스처로 저장한 뒤에 정점셰이더에서 텍스처 샘플링을 하는 경우도 있음(그래픽 카드가 정점텍스처를 지원해 줘야만한다. D3DUSAGE_QUERY..
8. 환경매핑(반사매핑)texCUBE() : 입방체 텍스처를 샘플링하는 함수 ■ 환경매핑 주위에 있는 물체가 반사한 빛이 거울 같은 표면에 정반사되는 것 ▶렌더몽키 코드 - 버텍스 셰이더12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152float4x4 gWorldViewProjectionMatrix;float4x4 gWorldMatrix; float4 gWorldLightPosition;float4 gWorldCameraPosition; struct VS_INPUT{ float4 mPosition:POSITION; float3 mNormal:NORMAL; float3 mBinormal:..
7. 법선매핑TANGENT : 정점에서 접선정보를 불러올 때 사용하는 시맨틱BINORMAL : 정점에서 종법선정보를 불러올 때 사용하는 시맨틱transpose() : 전치행렬을 구하는 함수접선공간 : 법선맵 안에 저장된 법선이 존재하는 공간평면 위에서 울퉁불퉁한 표면의 법선을 사용한 결과 표면 위에서 법선이 어떻게 정의되어 있는냐에 따라서 조명효과를 결정하기 위해 각 텍셀에 법선을 저장한다 ■ 법선맵법선맵(normal map) : 각 픽셀에 사용할 법선정보를 담고 있는 텍스쳐(접선공간으로 저장)법선매핑(normal mapping) : 법선맵을 이용해서 조명을 계산하는 기법법선맵 RGB = 법선벡터 XYZ x 0.5 + 0.5법선벡터 XYZ = 법선맵 RGB x 2 -1 ■ 접선공간(tangent spac..
6. 툰셰이더ceil() : 올림함수행렬 합치기 : 여러 개의 행렬을 미리 곱해 놓은 뒤, 그 결과를 정점변환에사용해도 결과는 동일하고 속도는 더 빠름역행렬 : 반대방향으로 공간변환시 사용 난반사광의 양툰셰이더 값000~0.20.20.2~0.40.40.4~0.60.60.6~0.80.80.8~11 ▶렌더몽키 코드 - 버텍스 셰이더12345678910111213141516171819202122232425262728293031float4x4 gWorldViewProjectionMatrix;float4x4 gInvWorldMatrix; float4 gWorldLightPosition; struct VS_INPUT { float4 mPosition : POSITION; float3 mNormal: NORMAL; ..
5.디퓨즈/스페큘러 매핑난반사광 = 빛의 색상X난반사광의 양X디퓨즈맵의 값정반사광 = 빛의 색상X정반사광의 양X스페큘러맵의 값스페큘러맵은 각 픽셀의 정반사광을 조절하는 것이 목적 ▶렌더몽키 코드 - 버텍스 셰이더12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849float4x4 gWorldMatrix;float4x4 gViewMatrix;float4x4 gProjectionMatrix; float4 gWorldLightPosition;float4 gWorldCameraPosition; struct VS_INPUT{ float4 mPosition:POSITION; float3 mNormal:NORMA..
4.조명셰이더NORMAL : 정점의 법선정보를 불러오는 시맨틱normalize() : 벡터 정규화 함수dot() : 내적 함수saturate() : 0~1 을 넘어서는 값의 범위를 짤라 냄reflect() : 벡터 반사 함수pow() : 거듭제곱 함수 ■ 난반사광입사광으로부터 여러방향으로 고르게 반사되는 빛어느 방향에서 바라봐도 물체의 명암이나 색조가 크게 변하지 않는 원인물체의 표면이 거칠수록 난반사가 심해진다. ■ 정반사광한 방향으로만 반사되는 빛입사각=출사각정반사광의 효과를 보려면 빛이 반사되는 방향에서 물체를 바라봐야 함.퐁모델 : 반사광과 카메라벡터가 이루는 각도의 코사인 값을 구하고, 그 결과를 거듭제곱매끄러운 표면일수록 정반사광이 타이트 -> 거듭제곱많이 블린 퐁(Blinn-Phong) : ..
3.텍스처매핑sampler2D : 텍스처에서 텍셀을 구해올 때 사용하는 샘플러 데이터형tex2D() : 텍스처 샘플링에 사용하는 HLSL함수스위즐 : 벡터 성분의 순서를 마음대로 뒤섞을 수 있는 방법 ▶렌더몽키 코드 - 버텍스 셰이더12345678910111213141516171819202122232425262728struct VS_INPUT{ float4 mPosition:POSITION; float2 mTexCoord:TEXCOORD0; //}; struct VS_OUTPUT{ float4 mPosition:POSITION; // float2 mTexCoord:TEXCOORD0; // }; float4x4 gWorldMatrix;float4x4 gViewMatrix;float4x4 gProjectio..