Lý thuyết 3D trước API đồ họa? [đóng cửa]


19

Tôi là một kỹ sư phần mềm và tôi hy vọng sẽ hướng sự nghiệp của mình theo hướng phát triển trò chơi. Tôi đang đọc một cuốn sách ngay bây giờ trên 2D bằng C ++ / DirectX. Khi tôi vào 3D tôi biết tôi muốn làm điều đó một cách chính xác. Ví dụ, tôi không biết gì về không gian 3d. Vì vậy, nếu tôi chỉ học một API tôi có thể biết nó nhưng tôi không biết liệu tôi có thể phát triển một thế giới 3d mini hấp dẫn với nó không. Tôi sẽ không tự gọi mình là thành công khi chỉ có một cái thùng quay với các shader mới nhất, v.v. Kỹ năng toán học của tôi phụ thuộc vào đại số trig / tuyến tính và vẫn còn học đại học. Tôi biết nhiều toán học sẽ đến. Tôi có nên đọc sách lý thuyết 3D trước khi chọn OpenGL / Direct3D hoặc bất kỳ đề xuất nào khác không? Tôi chỉ biết một API sẽ không dạy phát triển trò chơi 3D và sau đó không muốn bị mất. Tôi rất thiên về sách nên cũng không sao nếu có đề xuất ở đó. Suy nghĩ được chào đón. Cảm ơn!

Câu trả lời:


11

Sau khi giải tán bạn trên trang web khác, tôi cảm thấy bắt buộc phải trả lời :)

Bản thân tôi không chuyên nghiệp, nhưng tôi đã tham gia khóa học Đồ họa máy tính 3D ở trường đại học và nó thực sự giúp tôi hiểu các API mà tôi đã sử dụng.

Trong số những điều tôi thấy đặc biệt hữu ích:

  1. Ma trận biến đổi và cách chúng hoạt động, không chỉ đối với các phép biến đổi đối tượng mà còn để xem biến đổi, chiếu phối cảnh, v.v ... đó có lẽ là điều quan trọng nhất.
  2. Toàn bộ lý thuyết đằng sau sét và bóng tối, đặc biệt hữu ích khi bạn bắt đầu lao vào shader.
  3. Lấy mẫu kết cấu, mipmapping.
  4. Lý thuyết màu sắc và kỹ thuật pha trộn cũng hữu ích.

Và tôi chắc chắn nghĩ rằng đây là những chủ đề có thể được chọn từ việc chỉ đọc một hoặc hai cuốn sách về chủ đề này, miễn là bạn có nền tảng toán học.


Cảm ơn. Bạn đã nghe nói về cuốn sách này? Tôi nghe nói nó dạy lý thuyết 3d nhưng cũng tập trung vào rasterization phần mềm 3d. Tôi đoán nó vẫn có thể giúp hiểu những gì đang xảy ra. amazon.com/ Nhật Bản
Phil

1
@Phil rasterization rất quan trọng, nhưng tôi không biết liệu mình có bắt đầu với một cuốn sách có tên là "mẹo" và giải quyết các nhà phát triển 3D "tiên tiến" không ... nghe có vẻ như là thứ gì đó để đọc sau này.
Oak

Tôi đang đọc tập 1 ngay bây giờ và đây là tập 2. Tôi đoán nó hợp nhất với bạn nhưng tôi chưa bao giờ nhìn vào nó. Tôi biết anh ấy nói "tiên tiến" nhưng hầu hết nói không phải vậy. Tôi sẽ giữ nó trong danh sách :)
Phil

1
Truy tìm tia cũng là một chủ đề thú vị khác, nhưng quá chậm đối với các trò chơi thời gian thực
Bryan Denny

@Byran +1 để đề cập đến nó. Nó được sử dụng nó tính toán trước ánh sáng mặc dù.
Jonathan Fischoff

9

Bắt đầu bằng cách làm. Bằng cách đó bạn sẽ khám phá những gì bạn không biết.

Sau đó chọn một cuốn sách hay về toán 3D.

Tôi khuyên dùng '3D Math Primer cho Đồ họa và Phát triển Trò chơi'

bởi Fletcher Dunn và Ian Parberry. (Phần mềm từ)

Rất rõ ràng, đến mức, có liên quan - với mã C ++ và tất cả.

Điều rất quan trọng là phải biết về những điều cơ bản của các điểm, vectơ, biến đổi, v.v.

Nhưng điều đó không có nghĩa là bạn nên nghiên cứu tất cả trước khi lặn. :)


3

Tôi đã tham gia một lớp Giới thiệu về Đồ họa Máy tính ở trường đại học (1-2 năm trước) và trang web của khóa học vẫn đang hoạt động. Rất nhiều slide PowerPoint vẫn còn mà bạn có thể thấy hữu ích và hữu ích. Các chủ đề bao gồm cả lý thuyết đồ họa 2D và 3D.


2

Tôi ở trong một chiếc thuyền tương tự với bạn (mặc dù tôi đang học về kỹ thuật mà tôi mơ hồ biết ở trường đại học), và giải pháp của tôi là kiểm tra một số cuốn sách được đề cập trong câu hỏi " Sách lý thuyết toán học 3D tốt " ở đây. Nếu bạn là một người học sách có thể là một cách tốt để đi cho bạn. Đặc biệt là nếu trường đại học của bạn không thực sự có một khóa học đồ họa 3d tốt (của tôi thì không).


2

Hmmm, khi tôi phải thực hiện trò chơi 3D đầu tiên của mình khoảng 15 năm trước (phải là công việc của tôi, điều đó giúp tôi kiên trì) Tôi không có kiến ​​thức 3D nào khác ngoài toán học trung học. Nếu bạn thích giải câu đố và đọc lên, bạn có thể tự mình giải quyết vấn đề này và với một số trợ giúp từ internet (comp.graphics.alerskyms faq). Tôi đã đọc các cuốn kinh thánh openGL và http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406(cảnh báo oldskool) khi họ cung cấp thông tin lý lịch hợp lệ. Nếu bạn làm theo cách này, bạn có thể bắt đầu sai cách nhưng đến một lúc nào đó bạn sẽ mơ hoặc gặp phải, một giải pháp tốt hơn. Hầu hết các vấn đề 3d có thể được giải quyết nếu khả năng nắm bắt 2d của bạn tốt. Thêm vào trig chung, pythagoras, ma trận và nghịch đảo / chuyển vị (để chiếu), dấu chấm & sản phẩm chéo và những gì bạn sử dụng em cho, tứ phương (không phải hiểu em, chỉ cần biết cách sử dụng chúng - bạn có thể làm mà không cần chúng ngày nay là một phần của từ vựng cơ bản), và bạn có thể giải quyết hầu hết các vấn đề bạn gặp phải. Khi bạn đi, bạn sẽ gặp những cách tốt hơn, nhưng những người đó có thể giải quyết bất cứ điều gì. Cách tốt nhất là đặt cho mình một mục tiêu ngoài tầm hiểu biết của bạn và buộc bản thân phải đạt được điều đó. Những vấn đề bạn gặp phải là những gì bạn cần học, và này, bạn '


2

Blog của Wolfire Games đã có một loạt hướng dẫn thực sự xuất sắc về đại số tuyến tính cho các nhà phát triển trò chơi gần đây.

Điều thực sự quan trọng là phải hiểu toán học đằng sau nó trước khi bạn bắt đầu học API. Mặt khác, thứ tự và mục đích của các lệnh gọi API sẽ không có ý nghĩa nhiều đối với bạn. Trước tiên, bạn cần hiểu những gì họ đang làm cho bạn ở cấp độ toán học.


1

Tôi khuyên bạn nên đăng ký tại Học viện trò chơi , cụ thể là Lập trình đồ họa với các khóa học DirectX 9.

Bạn không cần tham gia vào các lớp tương tác nếu bạn chỉ muốn tự học.

Nhân tiện, có một tùy chọn để nhận sách in với số tiền bổ sung rất thấp. Họ rất xứng đáng

Tôi đã thực hiện rất nhiều khóa học của họ vài năm trước và các khóa học, mặc dù một chút skool cũ thực sự khá tốt và tôi không thể giới thiệu chúng đủ cao - cộng với Gary Simmons là một chàng trai thực sự tốt.


1

Trên hết chỉ cần cố gắng để làm cho công cụ. Đầu tiên và quan trọng nhất là nhảy vào. Nếu không, bạn sẽ trở thành một chuyên gia về lý thuyết nhưng không thực hành.

Nếu bạn nghĩ rằng bạn thực sự đam mê đồ họa, thì hãy tưởng tượng rằng bạn sẽ tiếp tục học vật liệu mới trong phần lớn cuộc đời mình. Nó không giống như bạn có thể học mọi thứ bạn cần trước khi bạn bắt đầu. Nó không hoạt động theo cách đó.

Khi bạn tìm hiểu ngày càng nhiều về toán học của đồ họa 3D, bạn sẽ nhận ra rằng không có toán học về đồ họa máy tính, chỉ có toán học. Học cách tự học toán . Sau đó, bạn sẽ có thể tiêu hóa các kỹ thuật mới khi chúng được trình bày trong văn học.

Khi công nghệ đồ họa phát triển, chúng tôi sẽ mượn các kỹ thuật toán học khác nhau. Những gì phổ biến ngày hôm nay có thể không phổ biến vào ngày mai.

Dưới đây là một số điều sẽ được giữ nguyên.

Ngay bây giờ tôi đang tìm thấy tài liệu trong Đại số hình học cho Khoa học máy tính rất thú vị, và nghĩ rằng có lẽ tốt hơn để bắt đầu với cách tiếp cận họ bố trí cho đồ họa máy tính. http://www.amazon.com/Geometric-Algebra-Computer-Science-Object-Orients/dp/0123694655

Cuốn sách giải thích những điều như tứ phương theo cách đơn giản hơn nhiều, và có thể hữu ích cho bạn tùy thuộc vào nền tảng toán học và sở thích của bạn.


1

Đừng tìm sách "đồ họa máy tính". Bắt đầu với đại số tuyến tính - nó đặt nền tảng cho mọi thứ bạn cần. MIT có một khóa học video tốt: http://ocw.mit.edu/cifts/mathatures/18-06-linear-acheebra-spring-2005/

Từ đó, cần phải thẳng tiến để chọn bất kỳ văn bản giới thiệu nào trên đồ họa máy tính. UoWashington có một khóa học trực tuyến (mặc dù không có video): http://www.cs.washington.edu/education/cifts/457/06au/lectures/

Nếu bạn không kiên nhẫn, bạn có thể bắt đầu với khóa học đồ họa mà không cần đại số tuyến tính, nhưng hãy tin tôi khi tôi nói nó sẽ quay lại cắn bạn :)


1

Nếu bạn muốn hiểu cách thức hoạt động của một đường ống kết xuất phần mềm truyền thống (và mọi thứ không thay đổi nhiều ngay cả khi giới thiệu các đường ống phần cứng có thể lập trình), một cuốn sách tôi chắc chắn sẽ giới thiệu sẽ là của Jim Blinn: A Trip Down The Graphics Pipeline.

Không giống như một số gợi ý khác, nó không đặc biệt toàn diện, nhưng nó rất dễ đọc và tôi nghĩ rằng nếu bạn chỉ mới bắt đầu với 3D, thì đó là một giới thiệu tốt. Và nó được viết bởi Jim Blinn, một trong những người sáng lập ra đồ họa máy tính, và do đó được viết từ quan điểm của một người thực sự phát minh / phát hiện ra các kỹ thuật này.


1

Tôi là TA cho khóa học đồ họa tại trường đại học của tôi trong vài năm. Tôi đã thiết lập giáo trình và bao quát những thứ như rasterization phần mềm và tô bóng, Java3D, OpenGL, v.v ... Một thời gian sau, trong thời gian này, tôi quyết định viết một công cụ dò tia cho bản chỉnh sửa của riêng mình. Đây là một trải nghiệm đáng kinh ngạc - với bộ đệm khung và thói quen putpixel (x, y, màu), trong 500 dòng tôi có mã để tạo một hình ảnh với hình cầu, hình tam giác, bóng trên mỗi pixel, bóng, v.v. Nếu tôi phải làm lại các pracs cho các khóa học, tôi sẽ nhấn mạnh rằng các sinh viên làm một ray-tracer. Đó là cách dễ dàng để nắm bắt các chi tiết của thuật toán quét khi xây dựng trình tạo điểm ảnh hoặc cảm thấy như bạn đang làm việc thông qua hộp đen bằng API 3D.

Để truy cập nhanh, chắc chắn vào hộp cát đồ họa, tôi khuyên bạn nên viết trình theo dõi tia của riêng bạn. Rõ ràng, điều này khác xa so với những gì thường được sử dụng trong sản xuất đồ họa 3D thời gian thực, nhưng nó là một cách thực sự trực quan và nhỏ gọn để xem và tìm hiểu lý thuyết.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.