'렌더링'에 해당되는 글 3건

  1. 2016.04.06 LOD(Level of Detail)
  2. 2016.03.20 최적화의 필수 culling기법
  3. 2016.03.18 3dmax Light 렌더링 하기
게임이론2016. 4. 6. 00:32

3D 모델링은 복잡할수록 데이터의 용량이커져 렌더링시 부하가 생길수있다. 이를 처리하기 위한 방법중에하나가 LOD다.  

LOD(level of detail)은 메쉬모델링 데이터를 단계별로 저장하는 기술이다.  게말해서 렌더링된 이미지가 큰기여도가 없을때 간략하게 표현하는방법이다.

 

 

LOD는 보통 정적LOD와 동적LOD로 나뉘는데 지형물에는 대부분 동적LOD가 사용되고 원래는 캐릭터에 정적LOD방식을

많이사용했지만 GPU기능의 발달로 캐릭터에도 동적LOD를 쓰는추세이다.

 

 

정적LOD (static LOD)는 카메라와 물체의 거리에따라서 가까운 거리에있는 물체를 정밀한메쉬를쓰고

멀리있는물체는 상대적으로 낮은단계로 쓰는방식이다.메쉬의 정밀도가 정해져있는데 이를 카메라와의 거리에따라서 바꿔치기한다.

이 방식은 연산이간단하여 속도가 빠르지만 여러단계의 메쉬를 갖고있어 메모리낭비가 심하고 거리에따라서 메쉬의 단계가

급격하게 변해 popping현상이 자주일어난다.

 

 

popping현상:거리에 따라 폴리곤수가 늘어나거나 줄면 오브젝트가 튀어나오는 현상.

                   메쉬의 급격한 레벨차이로 다른레벨사이에 구멍이 뚫리는현상

 

 

동적LOD는

거리에따라서 실시간으로 메쉬의 정밀도를 변화시키는것이다.

이방식의 장점은 거리에따라 정밀도가 바뀌는 방식이기때문에 메모리의 낭비가적다 단점은 메쉬분할이나 간략화에 따른

추가적인 연산이 많이 필요해서 렌더링속도가 상대적으로 느리다.

 

'게임이론' 카테고리의 다른 글

게임의 맵로드 3가지 방식 존,심리스,룸  (0) 2016.04.25
빌보드(Billboard)  (0) 2016.04.13
drawcall에 대하여  (0) 2016.03.29
Ridefilm <라이드 필름>  (0) 2016.03.22
최적화의 필수 culling기법  (0) 2016.03.20
Posted by daniel9811
게임이론2016. 3. 20. 20:26

Culling기법은 화면내에서 렌더링하지않아도 되는 불필요한부분들을 렌더링에서 배제하고 화면내에서 보여지는 부분만 렌더링하여 최적화를 하는방식이다.

시간 렌더링방식의 3D게임에서 물체의 뒷면이나 벽이나 물체뒤에 가려져있어 실제로 존재하지만 보이지않는것을 렌더링에서 제외시키는것이다.

 

 

 

 

 

 

 

 

 

Culling기법의 종류

 

culling기법중에 후면선별(backface culling)은 물체의 뒷면을 렌더링에서 제외 하는방식이다.

후면선별기법은 렌더링절차에서 자동으로 적용되므로 직접따로 설정할 필요는없다.

 

시각절두체별기법은 카메라 시야범위에 벗어나는 물체들을 선별해 이것들을 렌더링에서 제외하는 방식이다.

물체의 일부분이라도 카메라범위에 있으면 렌더링하게된다. 카메라 측면이나 후면부에 위치한 개체들을 렌더링에서 제외하는방식이다.

 

차폐선별기법은 앞에있는 벽이나 물체에의해서 가려진 뒤쪽의 물체를 렌더링에서 제외하는방식이다.

 

 

이처럼 컬링기법은 3D게임 화면내에서 보여지는 부분만 렌더링하므로 연산 속도가 훨씬 증가하게된다.

만일 컬링기법을 사용하지않고 전부랜더링 하게되면 과부하가 걸려버릴것이다.

컬링기법은 게임제작에 있어 필수적인 최적화방법인 것이다.

 

 

 

 

 

'게임이론' 카테고리의 다른 글

LOD(Level of Detail)  (0) 2016.04.06
drawcall에 대하여  (0) 2016.03.29
Ridefilm <라이드 필름>  (0) 2016.03.22
VR,가상현실(Virtual Reality)현황과 가상현실게임  (0) 2016.03.17
DDS포맷의 정의  (0) 2016.03.13
Posted by daniel9811
그래픽 디자인/3dmax2016. 3. 18. 00:30

 

3dmax를 실행시키면 초기화면이 이렇게 셋팅되어있다. 여기에 주전자를 만들어보겠다.

 

 

 

 

 

 

 

위사진처럼 태양모양의 create를 누르고 plane을 눌러 깔아준다 작업을 할때는 항상 2차원적인 top뷰나 pront뷰에서 작업하는것이 좋다

 

Alt+W 를 누르면 그 뷰를 전체화면으로 작업할수있다 축소할때도 ALT+W를 누른다.

 

그리고 teapot을 눌러 주전자를 만들어주고 그리고 만들고난다음에 오른쪽마우스를 눌러주어야 된다.

 

 

 

 

 

 

오른쪽에 name and color를 부분에있는 색부분을 누르면 색을 지정할수있다.

 

 

 

 

 

 

 

 

 

 

 

나는 둘다 회색으로 설정했다.

 

 

 

 

 

 

 

그리고 상단에 메뉴에 주전자모양이 3개있는데 그중 가운데것을 누르면 이렇게 렌더링을 할수있다.

지금은 매우 단순한 상태이기 때문에 랜더링하는데 1초도 걸리지 않는다

헐리우드영화 같은 회사에서 랜더링을 하면 며칠이 걸리는 경우도있다고한다.

 

 

 

 

 

 

 

 

 

이제 빛을 만들어서 3d이미지에 효과를 줄것이다.

 

 

 

 

 

 

 

 

 

create - 3번째 라이트 클릭 - omni를해서 프론트뷰에 드래그한다 드래그한후에 오른쪽마우스 클릭하는거 잊지않는다.

 이 새로생성한 라이트를 w를누르고 선택해 움직일때마다 주전자의 명암이달라진다

빛이 움직이는거와 똑같이때문이다.

 

 

 

 

 

 

 

 

주전자이미지를 렌더링해본다. 빛을 받는 효과가 생겨서 약간의 명암이생겻다.

그런데 그림자가 없으니 뭔가 어색하다. 그림자를 만들어주자

 

 

 

 

 

 

 

만들었던 omni light를 선택해주고 오른쪽 메뉴에 shadows 에 on을 체크해준다.

 

 

 

 

 

 

 

              그리고 다시 렌더링하면 그림자가 생긴다.

 

 

이렇게 빛 효과를 만들어주었는데 원래 3d 게임같은 경우 사용된 빛이 훨씬더 복잡하다 그래서 렌더링이 오래걸리는것이다

퀄리티도좋게 나온다

 

이번엔 더 복잡한 light를 생성해보겠다.

 

 

 

 

 

 

이번엔 light를 선택하고 오른쪽에 skylight를 선택하여 드래그한다.

 

 

 

 

 

 

 

 

skylight는 아까의 omni처럼 그냥 랜더링을 해서는 안된다 상단메뉴의 Rendering - light tracer 를 클릭

 

 

 

 

 

 

 

그러면 위처럼 나오는데

그냥 렌더를 누른다

 

 

 

 

아까보다 퀄리티가좋아진 light효과를 볼수있다.

 

지금까지 3dmax의 기능들을 알아보고 light을 사용하여 명암을 주는것과 렌더링을 해보았다.

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by daniel9811