홈
태그
미디어로그
위치로그
방명록
Angler Blog
(115)
일상생활_리뷰
(1)
UnrealEngine
(3)
ROS
(3)
Network
(5)
GamePrograming
(35)
Create Game
(9)
Direct3D
(14)
OpenGL
(4)
Orge Engine
(4)
내가본 GPG_One
(4)
랭귀지
(20)
C\C++
(5)
API
(4)
MFC
(7)
OpenMP
(4)
KAU
(38)
운영체제
(4)
Linux
(34)
iOS
(1)
언어정리
(4)
휴양
(0)
ABOUT ME
-
트위터
인스타그램
Today
-
Yesterday
-
Total
-
Angler
Angler
메뉴
검색
컨텐츠 검색
라이트 맵핑
GamePrograming/Direct3D
2009. 3. 6. 15:57
VOID Render() { D3DXMATRIXA16 matWorld; ///후면 버퍼와 Z버퍼 초기화 g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 255), 1.0f, 0); /// 에니메이션 행렬 설정 Animate(); if(SUCCEEDED(g_pd3dDevice->BeginScene())) { g_pd3dDevice->SetTexture(0, g_pTex0); ///0번 텍스쳐 스테이지에 텍스쳐 고정(벽면) g_pd3dDevice->SetTexture(1, g_pTex1); ///1번 텍스쳐 스테이지에 텍스쳐 고정(라이트맵) ///0번 텍스쳐 : 0번텍스쳐 인덱스 사용 g_pd3dDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0); ///1번 텍스쳐 : 0번텍스쳐 인덱스 사용 g_pd3dDevice->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 0); ///0번 텍스쳐 스테이지의 확대 필터 g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT); ///1번 텍스쳐 스테이지의 확대 필터 g_pd3dDevice->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); //g_pd3dDevice->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_POINT); g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1); g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1); g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); g_pd3dDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE); g_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE); g_pd3dDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT); g_pd3dDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE); g_pd3dDevice->SetTextureStageState(2, D3DTSS_COLOROP, D3DTOP_DISABLE); g_pd3dDevice->SetTextureStageState(2, D3DTSS_ALPHAOP, D3DTOP_DISABLE); DrawMesh(&g_matAni); ///렌더링 종료 g_pd3dDevice->EndScene(); } g_pd3dDevice->Present(NULL, NULL, NULL, NULL); }
라이트 맵핑(light mapping)은 과거 그래픽카드의 성능이 상당히 떨어지던 시절에 퀘이크, 언리얼 등의
FPS게임에서 많이 사용되었던 기법. 최근에는 라이트 맵핑을 사용하지 않고 실시간으로 광원연산을
GPU에 맞기는게 추세.
다이렉트 9.x버젼부터 사라진 MFCTEX. 효과를 적용시키고, 소스코드를 출력할수있다,
MfcTex.zip
공유하기
게시글 관리
Angler
관련글
관련글 더보기
ASE Animation [ *NODE_TM ]
ASE Animation [ *MATERIAL_LIST ]
ASE Animation [ *SCENE ]
Mesh
댓글
댓글 접기
댓글 펼치기
티스토리툴바