[팁] OpenGL 질문....
본문
2. 소프트웨어와 하드웨어의 차이??
3. 파이프라인이 무엇이죠?
4. 파이프라인의 구조
부탁드립니다
최신글이 없습니다.
최신글이 없습니다.
최신글이 없습니다.
최신글이 없습니다.
답변해 주신 분들 고맙습니다. 일단, 헤더 파일 포함 문제는 그냥 디렉토리를 옮기는 것으로 해결했습니다. 라이브러리…
안녕하세요. 두 가지 질문을 하려고 합니다. 최근에 OpenGL 프로그래밍을 하고 있습니다. 쉐이더를 쓰려면 필…
하나의 element를 '이동' 할 수 있는지 궁금하네요. 맥북 산지 한달도 안되서 키노트로 프리젠테이션만 3개 제작하게…
다른분이 올리신 자료에는 gride라는 효과가 있는데 그걸 제꺼에 적용하려 하면 없어지네요... 원래 제꺼엔 그 기능이 없던…
인코딩만 UTF-8로 하고 딴건 안했습니다. 프로젝트는 java->javatool로 했고요 이유를 모르겠네요 일단 …
안녕하세요 미쉐린 김성준입니다. 심히 오랜만에 글을 쓰네요..^^;; 앞으로 자주자주 쓰겠다는 말만하고 제대로 관리도 못하…
키노트로 프리젠테이션 파일을 만들었습니다. 일반 pc에서 구동하여 발표할려면 어떻게 저장하여 사용해야 할까요 자세한 설명 …
InputStreamReader 의 속성을 SJIS 에서 EUC-KR 로 바꾸는 방법으로 미와 고스트는 안되는데 마유라 고스트…
팁이라고 하기도 쑥스럽습니다만 저는 순서도 작성용 프로그램으로 Omni graffle을 사용하는데요 여기에 입체도형…
이번에 프리젠테이션 할게 있어서 난생 처음으로 keynote를 사용해 보았습니다. 맥에서도 파워포인트를 사용하다가 용기를 내서…
댓글목록 5
美청년.영환군님의 댓글
일단 임플리먼테이션(implementation)에 대한 것은 C를 공부하셨다고 하니..
C에서도 나오는 접하셨을 겁니다.
일반적으로 구현한다라는 의미로 받아들여지는데 예를 들어 C에서 어떤 함수 (여기서는 정수형 int 를 예로 들어) 이 함수의 크기가 DOS에서는 2바이트의 크기를 unix 또는 32bit Windows에서는 4바이트의 크기..
뿐만 아니라 컴파일러에 따라 DOS 상에서도 4바이트의 크기로 구현이 되기도 합니다.
즉 implementation 라는 것의 의미를 "지정한 함수 또는 메소드는 운영체제 또는 컴파일에에 의존한다.." 라고 해석하시는 것이..
쉽게 현재 사용되는 환경에 따라 구현된다 라고 이해하시면 됩니다.
제 설명이 좀 애매할 수도 있겠군요.
C에 해당해 설명을 드렸는데 OpenGL에서도 그 근본적 의미는 같다고 보시면 됩니다.
SW 와 HW의 차이는.. 아마도 렌더러에 대한 내용을 질문하신거 같은데..
NetImmerse 를 이용한 프로젝트에 대한 글을 본 기억이 있어서..
NDL엔진이라고도 불려지는데..
NDL 엔진은 Direct3D와 OpenGL가속을 지원하고 D3D나 OpenGL을 지원하는 그래픽 엑셀레이터를 설치한 시스템에서는 하드웨어 T&L가속을 지원 받을 수 있다고 내용은 기억합니다.
특히나 NetImmerse가 독자적으로 전체 hardware vector processing units, the graphics synthesizer and hardware DMA를 구현하해서Machintosh 플랫폼에서는 OpenGL을 통한 가속이 이루어집니다.
정확한 내용은 사용되어지는 플랫폼과 기반환경(개발 엔진)에 따라 HW 가속기능의 활용등에 대해 공부를 해보시는 것이 좋겠네요.
파이프라인(pipeline)은 아마도 렌더링 파이프 라인에 대한 설명을 원하시는 것 같은데..
혹시 그것이라면 렌더링 파이프라인은 3D로 정의된 물체들을 모니터상에 나타내기 위한 일련의 변환과정, 전체 파이프라인은 Transform뿐만 아니라 텍스쳐, 조명처리, 클리핑등의 더욱 많은 과정이 포함되어있음.
이라고 인터넷을 뒤져보면 내용이 나옵니다.
OpenGL의 내용은 아니지만 DirectX의 Transform pipeline 의 내용을 보면
각각의 정점, 폴리곤은 각자의 local 좌표계에서 만들어 지게되고 이것을 사용자가 3D 화면으로 볼때는 각각 따로 보는 것이 아닌 여러물체를 한번에 보게되는데 그것을 위해 각자의 local 좌표계에 존재하는 오브젝트들을 하나의 좌표계 (World 좌표계)로 만들어주는 것을 렌더링 파이프라인의 첫단계인 World transform 이라고 합니다.
다음으로 각각의 오브젝트들을 보는 위치를 지정해주게 되는데 카메라(View)를 기준으로 오브젝트들의 위치를 변환합니다. 이것을 View transform이라고 합니다.
마지막으로 Projection transform 은 카메라를 통해 오브젝트를 보는 방법을 지정하는 것을 말합니다.
일반적으로 원근감있게 보는 Perspective Projection 이나 CAD 등에 쓰이는 Parallel Projection 이 있습니다.
이렇게 렌더링 파이프라인에서 World transform, View transform, Projection transform 의 변환을 거쳐 3D 화면이 사용자에게 2D 화면으로 바뀌어 모니터에 출력되게 되는 겁니다.
나머지는 다음분께 패스~
너무슬픈프린이님의 댓글
2. 소프트웨어 임플리먼테이션, 하드웨어 임플리먼테이션의 차이
라고 써야 되는데 쓰지 않았군요...
뭐 유용한 답변이었습니다
너무슬픈프린이님의 댓글
추가질문
5. OpenGL 엔 커서 바꾸기, 창 크기 조절하기 등은 없고 운영체제 API의 도움을 받아야 되나요?
6. OpenGL 에 Sound 를 집어넣는것이 가능합니까??
7. 3ds max 같은걸로 만든 물체 등을 OpenGL 에 넣을수 있습니까??
조윤원님의 댓글
5. OpenGL 엔 커서 바꾸기, 창 크기 조절하기 등은 없고 운영체제 API의 도움을 받아야 되나요?
넵.. 어짜피 openGL도 하나의 api불가하지 않습니까.. 때문에 윈도우 사이즈를 바꾸시기 원하신다면 운영체제의 api를 사용하시면 됩니다.
6. OpenGL 에 Sound 를 집어넣는것이 가능합니까??
OPenGL자체에는 사운드제어 함수가 없습니다. 그래서 윈도우쪽에선 direct sound를 같이 사용하고 맥에선 openAL를 사용하면 보다빠르게 처리할수있습니다. 동시에 처리가 된다는 의미이지.. openGL안에 포함되어있진 않습니다.
7. 3ds max 같은걸로 만든 물체 등을 OpenGL 에 넣을수 있습니까??
openGL의 api에는 직접 다른 모델링된 파일을 불러올수 없습니다만.. 3ds파일 로더를 만들어서 사용하면 됩니다. 아직 저도 여기까지 해보진 못해 링크를 걸어둡니다. <a href=http://www.spacesimulator.net/tut4_3dsloader.html target=_blank>http://www.spacesimulator.net/tut4_3dsloader.html</a>
최기수님의 댓글
어렵네