본문 바로가기

42seoul

레이캐스팅 튜토리얼 5. Wolfenstein 3D 텍스처 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 Wolfenstein의 3D 텍스처 텍스처를 생성해서 사용하는 대신 이미지를 가져와 봅시다! 다음 8 개의 텍스처는 실제 Wolfenstein 3D에서 가져온 것으로, ID Software에 저작권이 있습니다. 여기에서 텍스처를 다운로드 할 수 있습니다. 텍스처 패턴을 생성하는 코드만 다음과 같이 바꿔주면 사용할 수 있습니다. 사용 시 텍스처 파일의 경로가 올바르게 설정되었는지 체크하세요. //generate some tex.. 더보기
레이캐스팅 튜토리얼 4. 예제코드로 이해하는 레이캐스터 구현 (textured) 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 예제코드로 이해하는 레이캐스터 구현 (textured) 예제코드 전체보기 : raycaster_textured.cpp 텍스처를 표현한 레이캐스터 는 텍스처 없이 색상만 표현한 레이캐스터와 그 핵심은 거의 같습니다. 마지막 즈음에 텍스처와 관련된 계산을 좀 더해주는 것과 각 픽셀이 어떤 텍셀(texel, texture pixel) 값을 갖는지 결정해주기 위해 모든 픽셀을 통과하는 y방향 반복문 이 추가됩니다. 이번에는 verL.. 더보기
레이캐스팅 튜토리얼 3. 예제코드로 이해하는 레이캐스터 구현 (untextured) 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 예제코드로 이해하는 레이캐스터 구현 (untextured) 예제코드 전체보기 : raycaster_flat.cpp 레이캐스터의 기본이 되는 텍스쳐 없이 색상만 표현한 레이캐스터 (Untextured Raycaster) 부터 시작하겠습니다. FPS 카운터 (fps : frames per second, 초당 프레임)도, 이동/회전을 위한 충돌감지 기능이 있는 입력키 (input key)도 다룹니다. #define mapWidth.. 더보기
레이캐스팅 튜토리얼 2. 아주 기본적인 원리 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 아주 기본적인 원리 레이캐스팅 의 기본개념은 다음과 같습니다. 2차원 정사각형 그리드로 된 맵 이 있습니다. 맵의 한 칸(square)은 0 또는 양수 값을 갖습니다. 0은 벽이 없음을 나타냅니다. 양수값은 벽이 있음을 나타내고, 특정 색상 또는 특정 질감을 나타냅니다. 화면의 모든 x값(수직선) 에 대해 플레이어 위치에서부터 시작하는 광선(Ray) 을 쏩니다. 이때 광선의 방향은 플레이어 가 바라보는 방향, 그리고 화면의 .. 더보기
레이캐스팅 튜토리얼 1. 레이캐스팅이 뭐야? 목차 1. 입문 레이캐스팅이 뭐야? 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 레이캐스팅이 뭐야? 레이캐스팅 은 2차원 맵에서 3차원의 원근감을 만드는 렌더링 기술 입니다. 레이캐스팅 은 스크린의 모든 수직선에 대해 계산(calculation)만 하면 되어서 속도가 빠릅니다. 컴퓨터가 지금보다 느려서 3D 엔진을 실시간으로 실행할 수 없던 과거에는 레이캐스팅 이 최초의 해결책이었습니다. 레이캐스팅 기술을 사용한 게임 중 가장 유명한 게임은 'Wolfenstein 3D'입니다. Wolfenstein.. 더보기