블로그 이미지
˙Jisoo

카테고리

분류 전체보기 (98)
Programming (35)
Game Project (23)
Almighty Engine (8)
Daily Life (19)
Photo Shots (11)
Total22,055
Today43
Yesterday77

'2010/07'에 해당되는 글 8건

  1. 2010/07/28 Texture Address Mode
  2. 2010/07/28 타일간의 경계 문제
  3. 2010/07/27 로딩 방식 변경 & 노멀맵
  4. 2010/07/24 버그 수정
  5. 2010/07/24 타일 붙이기
  6. 2010/07/20 BTT 인덱스버퍼 자동생성
  7. 2010/07/19 다시 지형..
  8. 2010/07/06 UI 시스템을 만들고있습니다..


한 타일 내 버텍스의 UV값이 0.0~1.0 사이라 해도 Texture Address Mode의 설정값에 따라 모서리부분에 영향을 주나봅니다.
예를들어 Wrap 모드의 경우에 타일형식으로 계속 뿌려주니 모서리 부분에서 보간을 해주는데 타일로 의도하지 않았는데도 알아서 보간을 해주네요.
그 결과 이전 포스트에서 보던 알 수 없는 경계선이 나오게 되더군요.
그래서 Texture Address Mode를 1.0 이상 벗어나면 그냥 그 값을 유지하는 Clamp 모드로 변경 해 주었더니 모서리부분이 마음대로 보간되는 현상은 없어졌습니다.
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

Texture Address Mode  (0) 2010/07/28
타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
Posted by ˙Jisoo

댓글을 달아 주세요




처음 만들 때 부터 타일간의 경계에서 이런 문제가 발생할 거라고 예상은 했지만 그냥 그대로 가기엔 너무 돋보여서 해결책을 찾아봐야 할 듯 하네요..ㅠ.ㅠ

저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

Texture Address Mode  (0) 2010/07/28
타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
Posted by ˙Jisoo

댓글을 달아 주세요





로딩을 한번에 다 불러오지 않고 어느정도 구역 안에 들어오면 로딩을 하고 벗어나면 해제하는 식으로 변경하였습니다.
그리고 예전처럼 미리 라이트맵을 저장하여 각 타일마다 관리를 하려고 했는데 라이트맵을 미리 저장 할 경우 빛의 방향이 바뀌면 라이트맵을 항상 갱신해줘야 해서 불편한 점이 있었기에 노멀맵을 저장해놓고 픽셀쉐이더 부분에서 계산해주도록 하였습니다.
만약 노멀맵/라이트맵을 따로 추출하지 않고 그냥 버텍스단위 라이팅을 주면 멀어질수록 디테일이 확연히 떨어집니다.

버텍스 단위 라이팅 적용시  http://www.js-almighty.com/44
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

Texture Address Mode  (0) 2010/07/28
타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
Posted by ˙Jisoo

댓글을 달아 주세요


좌표 설정이 잘못되었었네요.. 변수선언은 x,y 인식은 가로/세로, 실질적 처리는 x,z... 좌표축을 자꾸 바꿔버리다보니 버그라기보단 자꾸 어이없는 실수가;;

그리고 LOD 단계마다 구분이 잘 되도록 거리를 확확줄였습니다.
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
다시 지형..  (0) 2010/07/19
Posted by ˙Jisoo

댓글을 달아 주세요


쿼드트리로 한번 걸러내고 활성화된 타일들에 대해 lod레벨과 방향을 잡아주고 있습니다.
지금은 테스트용으로 64*64 짜리 16*16 개가 붙어있는 상태입니다.
스크린샷 찍고 올리기전에 좀 더 테스트 해보다 보니 방향잡아주는 곳에서 버그가 ㅠ.ㅠ
버그 잡아주고 타일별로 노멀맵을 추출하는 작업까지 하고나면 자원 관리용 쓰레드를 따로 만들어줘야 겠네요 따로 로딩화면 없이 돌아다닐 수 있어야 하니..
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
다시 지형..  (0) 2010/07/19
Posted by ˙Jisoo

댓글을 달아 주세요


삼각형을 점점 쪼개가는 방식으로  재귀호출로 돌려놓으면 되니 인덱스 생성하는게 편하네요.
균열방지용으로 테두리부분은 한번씩 더 쪼개주면 되고..
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
다시 지형..  (0) 2010/07/19
Posted by ˙Jisoo

댓글을 달아 주세요



예전에 지형 시스템을 만들긴 했었는데 책대로만 따라했던거라 직접 다시 만들어보고 있습니다.
그때 당시에 용책과 해골책을 참고하여 만들었는데 계속 실시간으로 인덱스를 계산해주는 방식이었습니다.
그런데 문제가 지형의 크기가 커지면 커질수록 계산 비용이 너무 커서 그냥 랜더링하는게 나을 정도로 비효율적인 결과가 나왔습니다..
그에대한 방안으로 SLOD라는 인덱스들이 타일형식으로 미리 계산된 LOD방식을 알아보았는데 여기서도 또 많은 의견이 나뉘더군요.
여기저기 찾아보니 요즘 그래픽 가속 성능이면 LOD가 필요없다는 말들도 있고.. 짧은 저의 소견으로는 MMORPG나 RTS같이 위에서 내려다보는 빈도가 높은 장르에서는 타일은 이용하지만 LOD는 필요없고, RPG나 TPS같이 전경을 바라보는 빈도가 많은 장르에서는 LOD가 어느정도 필요할 듯 싶습니다.
시작은 SLOD 방식으로 하기로 했으니 장점을 최대한 살려볼 계획입니다. (아주 먼~ 지형까지 표현한다던지..)

첨부된 이미지는 BTT(Binary Triangle Trees)를 이용한 인덱스버퍼 생성 방식입니다.
Binary Triangle Trees for Terrain Tile Index Buffer Generation
http://www.gamasutra.com/features/20061221/dallaire_01.shtml
GPG2권에 있는 'Interlocking Tiles' 방식보다 생성해놔야 할 인덱스버퍼수도 줄이고 레벨 단위가 ILT에 비해 2배정도 많아 자연스럽게 단계를 나눠간다는 장점이 있다 합니다.
구글링 해보니 지형의 복잡도에 따라 정점을 줄여주는 ROAM 알고리즘에서 BTT를 사용하는건 많이 보이는데 반해 타일형식으로 이용하는건 보이질 않더군요.
속도측정을 위해 막 여러개 복사시키고 화면에 겹쳐뿌리고 인덱스버퍼설정도 마구 바꾸고 했는데 큰 문제가 보이진 않았기에 일단 강행 할 예정입니다 ㅡ.ㅡ; 적어도 CLOD보다는 나으리라 생각하며...
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > Terrain System' 카테고리의 다른 글

타일간의 경계 문제  (0) 2010/07/28
로딩 방식 변경 & 노멀맵  (0) 2010/07/27
버그 수정  (0) 2010/07/24
타일 붙이기  (0) 2010/07/24
BTT 인덱스버퍼 자동생성  (0) 2010/07/20
다시 지형..  (0) 2010/07/19
Posted by ˙Jisoo

댓글을 달아 주세요



그동안 어떻게 UI시스템을 만들까 생각만 해오다가 얼마전부터 공책에 옮겨보다 이제야 작업을 시작했습니다.
( 축구를 너무 좋아하는지라 월드컵 분위기 때문에 놀기바쁘네요 ㅠ.ㅠ )
UI객체들 서로간에 어떤방식으로 메세지를 전달해야 추후 추가작업이 편리할지 고민을 했었는데 메세지핸들러를 만들어놓고 각각의 버튼에 메세지를 지정하고 ( UI객체 내부/외부 에서 메세지를 넣을 수 있도록 ) 버튼이 눌리면 메세지큐에 누적시키고 UI 시스템 쪽에서 해석하여 다음 기능을 수행하는 방식으로 하였습니다.
그리고 픽킹 방식은 하드웨어가속을 받을 수 있는 컬러픽킹을 사용하였습니다.
각각 버튼객체들이 서로다른 id를 가지고 이 id는 고유의 색상을 나타내서 화면에 그려진 색상으로 판별하는 방식입니다.
화면에 보이는 모든 객체를 두번 랜더링해야하는 단점이 있지만 어느모양이든 그려내기만 하면 어떤것이 클릭되었는지는 알기 쉽다는 장점이 있습니다.
어느정도 모양새가 갖춰지면 3D UI도 추가할 예정이기에 이 방식을 택하였습니다.

흠 아직까지도 계속 시행착오를 겪고있기에 방식이 조금씩 바뀔 수도 있습니다.
저작자 표시 비영리 동일 조건 변경 허락

'Almighty Engine > UI System' 카테고리의 다른 글

UI 시스템을 만들고있습니다..  (0) 2010/07/06
Posted by ˙Jisoo

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함