그래픽 API 이전의 3D 이론? [닫은]


19

저는 소프트웨어 엔지니어이며 경력을 게임 개발로 옮기고 싶습니다. C ++ / DirectX를 사용하여 2D에 관한 책을 지금 읽고 있습니다. 3D에 들어가면 제대로하고 싶습니다. 예를 들어, 나는 3D 공간에 대해 아무것도 모른다. 따라서 API 만 배우면 그것을 알 수 있지만 인터랙티브 미니 3D 세계를 개발할 수 있는지 모르겠습니다. 나는 최신 셰이더 등으로 회전하는 상자를 가지고 성공하지 못했다. 나의 수학 능력은 최대 삼각법 / 선형 대수이며 여전히 대학에있다. 나는 더 많은 수학이 올 것이라는 것을 안다. OpenGL / Direct3D 또는 다른 제안을 받기 전에 3D 이론 책을 읽어야합니까? API가 3D 게임 개발을 가르치지 않으며 나중에 잃고 싶지 않다는 것을 알고 있습니다. 나는 매우 책 지향적이므로 제안이 있으면 괜찮습니다. 생각은 환영합니다. 감사!

답변:


11

다른 사이트에서 당신을 dissing 후 나는 대답 해야하는 느낌 :)

나는 전문가가 아니지만 대학에서 3D 컴퓨터 그래픽 과정을 수강했으며 결국 내가 사용하는 API를 이해하는 데 도움이되었습니다.

내가 특히 유용한 것들 중에서 :

  1. 객체 변환뿐만 아니라 변형, 원근 투영 등을보기위한 변형 행렬과 작동 방식. 아마도 가장 중요한 것입니다.
  2. 번개와 그림자의 전체 이론. 특히 셰이더를 다루기 시작할 때 특히 유용합니다.
  3. 텍스처 샘플링, 밉 매핑.
  4. 색상 이론 및 혼합 기술도 유용합니다.

그리고 나는 이것이 당신이 수학적 배경을 가지고있는 한, 주제에 관한 책을 한두 권 읽음으로써 얻을 수있는 주제라고 생각합니다.


감사. 이 책에 대해 들어 보셨습니까? 3D 이론을 가르치지 만 3D 소프트웨어 래스터 화에도 중점을 둡니다. 아직도 무슨 일이 일어나고 있는지 이해하는 데 도움이 될 것 같습니다. amazon.com/…
Phil Phil

1
@Phil 래스터 화는 중요하지만 "tips"라는 책으로 시작하여 "고급"3D 개발자를 대상으로 할 것인지 모르겠습니다. 나중에 읽어야 할 것 같습니다.
Oak

나는 지금 1 권을 읽고 있으며 이것은 2 권입니다. 나는 그것이 당신을 합병시킬 것이라고 생각하지만 그것을 본 적이 없습니다. 나는 그가 "고급"이라고 말하지만 대부분은 그렇지 않다고 말합니다. 나는 그것을 목록에 유지하겠습니다 :)
Phil

1
레이 트레이싱은 또 다른 흥미로운 주제이지만 실시간 게임에는 너무 느립니다
Bryan Denny

언급을 위해 @Byran +1. 그래도 사전 계산 조명으로 사용됩니다.
Jonathan Fischoff

9

먼저 시작하십시오. 그렇게하면 모르는 것을 발견 할 수 있습니다.

그런 다음 3D 수학에 대한 좋은 책을 선택하십시오.

'그래픽 및 게임 개발을위한 3D 수학 입문서'를 추천합니다

플레처 던과 이안 파 베리 (워드웨어)

C ++ 코드와 관련하여 매우 명확합니다.

점, 벡터, 변형 등의 기본 사항을 아는 것이 매우 중요합니다.

그렇다고 다이빙하기 전에 모든 것을 공부해야한다는 의미는 아닙니다. :)


3

대학에서 컴퓨터 그래픽 입문 강의를 받았고 (1-2 년 전) 코스 웹 사이트 는 여전히 운영 중입니다. 유용하고 도움이되는 많은 PowerPoint 슬라이드가 여전히 있습니다. 주제는 2D 및 3D 그래픽 이론을 모두 다룹니다.


2

나는 당신과 비슷한 보트를 타고 있습니다 (비록 내가 대학에서 모호하게 알고있는 것들을 기술적으로 다시 배우고 있지만). 나의 해결책은 여기서 " Good 3D Math Theory Books "질문 에서 언급 한 몇 권의 책을 확인하는 것입니다. 당신이 책을 배우는 사람이라면 갈 수있는 좋은 방법 일 것입니다. 특히 대학에 실제로 좋은 3D 그래픽 과정이없는 경우 (광산이 아닌).


2

흠, 약 15 년 전에 나의 첫 3D 게임을 만들어야했을 때 (내 일 이었기 때문에 인내하는 데 도움이 됨) 고등학교 수학 이외의 다른 3D 지식이 없었습니다. 퍼즐 풀기 및 읽기에 대한 애정이 있다면, 대부분 자신을 추리하고 인터넷의 도움을 받아 (comp.graphics.algorithms faq) 추론 할 수 있습니다. 나는 openGL 성경과 http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406을 읽었습니다 .그들이 유효한 배경 정보를 줄 때 (oldskool에 경고). 이 방법을 사용하면 잘못된 방법으로 시작할 수 있지만 어느 시점에서 더 나은 솔루션을 꿈꾸거나 부딪 칠 수 있습니다. 2D 파악이 양호하면 3D 문제의 대부분을 해결할 수 있습니다. 일반 삼각법, 피타고라스, 행렬 및 역수 / 전치 (투영 용), 도트 및 크로스 곱 및 em에 사용하는 항목, 쿼터니언 (em을 이해할 필요가없고 사용 방법을 알아야 함)에 추가하십시오. 요즘은 기본 어휘의 일부입니다.) 대부분의 문제를 해결할 수 있습니다. 당신이 갈수록 당신은 더 나은 방법으로 충돌하지만, 그 몇 가지가 무엇이든 해결할 수 있습니다. 가장 좋은 방법은 자신이 파악할 수없는 목표를 세우고 스스로가 목표를 달성하도록하는 것입니다. 당신이 겪는 문제는 배우고 자하는 것입니다.


2

Wolfire Games 블로그에는 최근 게임 개발자를위한 선형 대수학에 대한 훌륭한 튜토리얼 시리즈가 있습니다.

API를 배우기 시작하기 전에 배후의 수학을 이해하는 것이 정말 중요합니다. 그렇지 않으면 API 호출의 순서와 목적이 당신에게 전혀 의미가 없습니다. 먼저 수학 수준에서 그들이 무엇을하고 있는지 이해해야합니다.


1

Game Institute , 특히 DirectX 9 교육을 통한 그래픽 프로그래밍에 등록하는 것이 좋습니다 .

자체 학습을 원한다면 대화식 수업에 참여할 필요가 없습니다.

그건 그렇고, 매우 적은 양의 책을 인쇄 할 수있는 옵션이 있습니다. 그들은 그만한 가치가 있습니다.

나는 몇 년 전에 많은 코스를했고 코스는 조금 오래된 스쿨은 정말 훌륭하고 충분히 추천 할 수는 없지만 Gary Simmons는 정말 좋은 사람입니다.


1

무엇보다도 그냥 물건을 만들어보십시오. 가장 먼저 뛰어 들어갑니다. 그렇지 않으면 이론의 전문가가 되겠지만 연습은 할 수 없습니다.

그래픽에 대한 열정이 있다고 생각한다면 대부분의 인생에서 새로운 자료를 계속 배우게 될 것이라고 상상해보십시오. 시작하기 전에 필요한 모든 것을 배울 수있는 것은 아닙니다. 그것은 그렇게 작동하지 않습니다.

3D 그래픽의 수학에 대해 점점 더 많이 배울수록 컴퓨터 그래픽의 수학은없고 수학 만 있다는 것을 알게 될 것입니다. 스스로 스스로 수학을 가르치는 방법을 배우십시오 . 그러면 새로운 기술이 문헌에 제시된대로 소화 할 수 있습니다.

그래픽 기술이 발전함에 따라 우리는 다른 수학 기술을 빌릴 것입니다. 오늘 인기있는 것은 내일 인기가 없을 수도 있습니다.

동일하게 유지 될 몇 가지 사항이 있습니다.

지금 저는 컴퓨터 공학을위한 기하 대수학의 자료를 매우 흥미롭게 생각하고 있으며, 컴퓨터 그래픽을위한 레이아웃 방식으로 시작하는 것이 더 나을 것이라고 생각합니다. http://www.amazon.com/Geometric-Algebra-Computer-Science-Object-Oriented/dp/0123694655

이 책은 쿼터니언과 같은 것들을 훨씬 더 간단한 방법으로 설명하며, 수학적 배경과 관심사에 따라 도움이 될 수 있습니다.


1

"컴퓨터 그래픽"책을 가지 마십시오. 선형 대수로 시작하십시오-필요한 모든 것을위한 기초를 마련합니다. MIT에는 다음과 같은 좋은 비디오 과정이 있습니다. http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2005/

거기에서 컴퓨터 그래픽에 대한 소개 텍스트를 직접 가져와야합니다. UoWashington은 온라인 강좌를 제공합니다 (비디오는 아님) : http://www.cs.washington.edu/education/courses/457/06au/lectures/

당신이 참을성이 없다면 선형 대수없이 그래픽 코스로 시작할 수는 있지만 다시 물릴 것이라고 말할 때 나를 믿으십시오. :)


1

전통적인 소프트웨어 렌더링 파이프 라인이 어떻게 작동하는지 이해하고 싶다면 (프로그래밍 가능한 하드웨어 파이프 라인을 도입해도 큰 변화가 없었습니다) Jim Blinn 's : A Trip Down The Graphics Pipeline을 추천합니다.

다른 제안 중 일부와 달리 특별히 포괄적 인 것은 아니지만 읽을 수 있으며 3D를 시작하는 경우 좋은 소개라고 생각합니다. 그리고 컴퓨터 그래픽의 창시자 중 한 명인 Jim Blinn이이 기술을 실제로 발명 / 발견 한 사람의 관점에서 작성되었습니다.


1

나는 몇 년 동안 대학에서 그래픽 과정의 조교였습니다. 강의 계획서를 작성하고 소프트웨어 래스터 화 및 음영, Java3D, OpenGL 등과 같은 것들을 다루었습니다. 그 후 얼마 후, 저는 제 시간에 광선 추적기를 작성하기로 결정했습니다. 프레임 버퍼와 putpixel (x, y, color) 루틴을 사용하여 500 줄에서 구, 삼각형, 픽셀 당 음영, 그림자 등으로 이미지를 생성하는 코드를 만들었습니다. 코스의 실습을 다시 시작하면 학생들이 광선 추적기를해야한다고 주장합니다. 래스터 라이저를 만들 때 스캔 라인 알고리즘의 세부 사항을 쉽게 파악하거나 3D API를 사용하여 블랙 박스를 작업하는 것처럼 느껴지는 방법입니다.

그래픽 샌드 박스에 빠르고 안전하게 액세스하려면 자체 광선 추적기를 작성하는 것이 좋습니다. 분명히 이것은 실시간 3D 그래픽 제작에 일반적으로 사용되는 것과는 거리가 멀지 만 이론을보고 배우는 정말 직관적이고 간결한 방법입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.