Một số tài nguyên học tập tốt cho OpenGL là gì? [đóng cửa]


88

Tôi đã sử dụng OpenGL ES trên iPhone được một thời gian và về cơ bản tôi cảm thấy khá lạc lõng với bộ lệnh nhỏ mà tôi đã thấy trong các ví dụ và được sử dụng như của riêng tôi. Tôi rất thích sử dụng OpenGL trên các nền tảng khác và hiểu rõ về nó.

Mỗi lần tôi tìm kiếm một cuốn sách, tôi thấy cuốn kinh thánh HUGE này có vẻ không thú vị và rất khó cho người mới bắt đầu. Nếu tôi có một vài ngày cuối tuần để học OpenGL, cách tốt nhất để sử dụng thời gian (và tiền bạc) của tôi là gì?


12
Tôi ghét phải nói điều đó, nhưng OpenGL Superible hoặc sách đỏ OpenGL cách tốt nhất để học OpenGL. Đây là một chủ đề phức tạp, vì vậy cuốn sách cần phải lớn.
Rachel Blum

6
Là nó đáng tin ngay cả đối với một người mới?
DFectuoso

Câu trả lời:


36

Hãy cẩn thận khi bạn xem các hướng dẫn về OpenGL, vì nhiều trong số chúng (NeHe) bao gồm chỉ dạy cho bạn những điều mà bạn không nên làm nữa. Ngày nay OpenGL là một con thú khác với 10 năm trước.

Một số ví dụ hay để tránh những thứ không dùng nữa có thể được tìm thấy ở đây: http://www.g-truc.net/post-tech-content-sample.html

Gói OpenGL Samples Pack 4.0.1.0 là bản cập nhật mang số lượng mẫu lên tổng số 58 mẫu; bao gồm 13 mẫu OpenGL 4, 33 mẫu OpenGL 3.3 và 12 mẫu OpenGL 2 cho Visual Studio 2008 và 2010 với 32 và 64 bit.


Nó liên kết với một ngọn núi!
dùng14170

65

Có rất nhiều điều bạn có thể học hỏi từ. Đây là suy nghĩ của tôi về từng người, từ góc nhìn của một người mới đối với OpenGL.

Ví dụ về OpenGL

Có rất nhiều mã ví dụ ngoài đó mà bạn có thể đọc. Các ví dụ của G-truc khá rộng rãi và bao gồm rất nhiều tính năng nâng cao.

Tuy nhiên, nếu bạn là người mới bắt đầu , học từ các ví dụ là một cách học kinh khủng. Đọc mã mà bạn không thực sự hiểu sẽ không dạy bạn tại sao nó hoạt động. Thật vậy, văn bản trên trang được liên kết ở trên nói rõ và đúng rằng các ví dụ không dành cho người mới bắt đầu.

Học từ mã nguồn trần, trừ khi nó được bình luận nhiều (tại thời điểm đó là hướng dẫn) không phải là một điều dễ dàng. Cố gắng làm như vậy khuyến khích lập trình theo kiểu sùng bái hàng hóa và mã hóa sao chép và dán. Rất dễ để thuyết phục bản thân rằng bạn hiểu cách thức hoạt động của một cái gì đó khi tất cả những gì bạn thực sự làm chỉ là sao chép mã từ nơi này sang nơi khác. Bạn có thể kết hợp và kết hợp mọi thứ, nhưng sự hiểu biết thực sự rất khó đạt được nếu không có tài liệu giảng dạy đúng đắn.

Sách OpenGL

Có một số lượng khá lớn các sách có thể mua thực tế để phát triển OpenGL. Tôi sẽ che đậy suy nghĩ của tôi về hai lớn nhất ở đây.

Sách đỏ OpenGL

Điều này là một số vấn đề từ quan điểm hoàn toàn thực tế. Xem, phiên bản thứ 7 bao gồm GL 3.0 và 3.1. Cái nào khá cũ. Đã có rất nhiều tính năng hữu ích được thêm vào OpenGL kể từ đó, các tính năng thay đổi cách bạn sẽ viết mọi thứ. Và không phải tất cả chúng đều là tính năng phần cứng.

Phiên bản thứ 8 sẽ sớm ra mắt và sẽ bao gồm 4.1. Không có thông tin về việc liệu nó có bao gồm các công cụ cố định cũ hay không.

Tôi muốn nói cuốn sách này là OK. Vấn đề lớn nhất với nó là tổ chức thông tin. Nó giống như một hướng dẫn tham khảo toàn diện hơn là một cuốn sách dành cho học tập. Ý tôi là đây.

Một trong những điều quan trọng nhất mà người ta nên làm khi giảng dạy là không gây quá tải cho học sinh với thông tin không quan trọng. Nhưng Redbook làm chính xác điều đó. Khi giới thiệu tài liệu, nó giới thiệu rất nhiều tài liệu. Phần lớn nó không cần thiết cho nhiệm vụ trong tầm tay.

Những gì bạn nói về và khi bạn nói về nó là rất quan trọng để làm cho cuốn sách của bạn trở thành một tài nguyên học tập tốt. Sách đỏ không bao giờ giữ lại thông tin cho đến một thời điểm thích hợp hơn. Khi nó nói về cách vẽ hình tam giác và nguyên thủy, nó nói về tất cả mọi thứ về việc vẽ chúng, tất cả cùng một lúc. Nó bao gồm mọi tùy chọn, mọi chức năng, mọi tham số, v.v.

Đó không phải là một tổ chức thông tin tốt.

OpenGL tuyệt vời

Phiên bản thứ năm của cuốn sách này chỉ bao gồm lõi GL 3.x, do đó không có chức năng cố định.

Tuy nhiên, tổ chức chung của cuốn sách ít nhiều giống với tổ chức của phiên bản thứ tư. Điều này dường như là không thể vì phiên bản thứ 4 đã sử dụng chức năng cố định và không giới thiệu các shader cho đến sau này.

Cách thức này được thực hiện là khiếu nại số 1 của tôi về cuốn sách. Về cơ bản, tác giả đã xây dựng một thư viện thực hiện một dạng OpenGL chức năng cố định. Nó bao bọc các VAO, đối tượng đệm, đổ bóng và nhiều thứ khác, để anh ta có thể vẽ các đối tượng, toán ma trận và kết cấu mà không cần phải nói chi tiết về cách thức hoạt động của đường ống GL.

Bằng cách ẩn tất cả các chi tiết này, nó làm cho vật liệu dễ tiêu hóa hơn. Nhưng bạn sẽ thường thấy mọi người rời khỏi Siêu thị mà không biết làm thế nào để thực sự hoạt động mà không có thư viện. Họ không thực sự hiểu cách các shader kết nối với các đối tượng đệm, cách dữ liệu chảy lên đường ống, v.v.

Đó là một cuốn sách phục vụ, moreso hơn Redbook. Nếu vẫn thất bại, nó sẽ thực hiện công việc. Nhưng tôi nghĩ nó có thể tốt hơn.

Ngoài ra, theo một số nhà phê bình, dường như bỏ lỡ một số thông tin hữu ích nhất định, như đóng gói dữ liệu thuộc tính bằng cách sử dụng các giá trị chuẩn hóa và như vậy.

Tài liệu trực tuyến OpenGL

Có nhiều tài liệu trực tuyến mà người ta có thể học hỏi.

Hướng dẫn của NeHe

Các hướng dẫn của NeHe , như những người khác đã nêu, cực kỳ lỗi thời. Họ tập trung vào OpenGL chức năng cố định. Người ta thường nói rằng rất dễ để học GL chức năng cố định, điều này đúng. Nhưng điều đó không làm cho nó một ý tưởng tốt.

Hiểu làm thế nào các đường ống chức năng cố định thực sự hoạt động là khó khăn. Tôi sẽ đi xa hơn để nói rằng nó khó hơn học shader. Một khi bạn nhận được nó, shader rất đơn giản. Hiểu được sự phức tạp của công cụ môi trường kết cấu, bộ kết hợp và không có gì, rất khó và đòi hỏi phải thường xuyên truy cập tài liệu tham khảo để đảm bảo mọi thứ được thiết lập đúng. Ngay cả khi bạn hiểu chính xác mọi thứ, thật dễ dàng mắc một lỗi nhỏ khiến mọi thứ bị phá vỡ.

Sự khác biệt là bạn có thể làm cho chức năng cố định hoạt động mà không hiểu nó. Điều này khuyến khích lập trình sùng bái hàng hóa. Nó làm cho nó có thể có được một cái gì đó trên màn hình mà không thực sự biết những gì một người đang làm. Trên các diễn đàn OpenGL.org, chúng tôi thấy các câu hỏi liên tục về các chi tiết vụn vặt xung quanh chức năng cố định, từ những người không biết cách hoạt động của gluLookAt, đến những khó khăn với ánh sáng, đến những người đang cố gắng để có được hiệu ứng đặc biệt nào đó để làm việc với môi trường kết cấu.

Vì vậy, không, tôi không nghĩ NeHe là một cách tốt để học OpenGL.

Bình luận ở trên có thể được sử dụng cho bất kỳ hướng dẫn không dựa trên shader nào, như Swiftless , Ngọn hải đăng , v.v.

Lập trình OpenGL của Wikibook

Lập trình OpenGL Wikibook có lẽ tương đương với NeHe. Nó bao gồm GL phiên bản 2.1, vì họ muốn giữ cho nó phù hợp với các nền tảng di động. Nếu điều đó quan trọng với bạn, thì bằng mọi cách hãy nhìn vào đây.

Vấn đề khác với NeHe, và do đó Wikibook này, là sự tập trung lớn vào mã nguồn. Tỷ lệ văn bản trên mã là rất nhỏ; có rất nhiều mã, nhưng văn bản không thực sự giải thích cách thức hoạt động của tất cả.

Ví dụ, nhìn vào phần dưới của Hướng dẫn 2. Nó giới thiệu sự pha trộn. Nó không nói cách pha trộn hoạt động. Nó không nói những gì glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)thực sự có nghĩa hoặc làm. Nó chỉ nói, "Đây là một số mã làm cho mọi thứ minh bạch."

Đó không phải là môi trường học tập tốt nhất.

Hướng dẫn chưa hoàn thành

Swiftless có một tập hợp các hướng dẫn 4.x OpenGL . Phần mềm sầu riêng cũng có một số hướng dẫn OpenGL dựa trên shader . Và có hướng dẫn "OpenGLBook.com" .

Điểm chung của tất cả là ... chúng chưa hoàn thiện và bị bỏ rơi. Tất cả họ có khoảng 4-5 hướng dẫn, và sau đó đã bị loại bỏ. Không ai trong số họ đạt được kết cấu, ánh sáng, hoặc bất cứ điều gì như thế. Vâng, Durian đã nhấn kết cấu nhưng không chiếu sáng.

Nhiều thứ có thể được gleemed từ họ, nhưng cũng có nhiều thứ còn thiếu.

Tự xấu hổ

Xem lại các hướng dẫn Đồ họa 3D hiện đại của riêng tôi sẽ là một xung đột lợi ích khủng khiếp. Vì vậy, thay vào đó, tôi sẽ nói rõ về tổ chức đằng sau họ và lý do tại sao tôi nghĩ họ tốt.

Ồ và vâng, tôi đang làm việc trên Hướng dẫn 17. Dự án chưa chết.

Ba chương đầu tiên thực sự là về cách học đường ống OpenGL hoạt động. The Superible thất bại vì nó cố gắng che giấu chi tiết. Thay vào đó, tôi cố gắng giải thích những chi tiết đó thực sự, thực sự tốt. Nhiều lần. Giới thiệu giải thích các đường ống trong văn bản đơn giản. Hướng dẫn đầu tiên giải thích nó với mã đệm. Và hướng dẫn thứ hai ghé thăm nó nhiều hơn.

Từ đó, tôi tự nhiên chuyển sang định vị đồ vật. Điều này giới thiệu đồng phục, nhưng tôi không muốn gây nhiễu đồng phục và chiếu phối cảnh cùng một lúc. Vì vậy, tôi tách hai khái niệm. Sau khi chiếu, bộ đệm sâu dường như là một bước tiếp theo hợp lý, tiếp theo là cách các phép biến đổi và ma trận hoạt động. Sau đó, máy ảnh. Xoay vòng với tứ phương là một bổ sung muộn, nhưng tôi cảm thấy rằng đó là một điều quan trọng để nói về lập trình viên đồ họa vừa chớm nở.

Các hướng dẫn ánh sáng một lần nữa xây dựng cái khác. Khuếch tán, sau đó chiếu sáng mỗi mảnh, sau đó đầu cơ. Phạm vi năng động là một lựa chọn thú vị. Hầu hết các tài liệu giới thiệu cố gắng tránh xa điều đó, nhưng tôi nắm lấy nó. Bạn không phải là một lập trình viên đồ họa ngày nay nếu bạn nghĩ cường độ ánh sáng luôn nằm trong phạm vi [0, 1]. Và bạn không phải là một lập trình viên đồ họa ngày nay nếu bạn không biết cách duy trì một đường ống màu tuyến tính.

Cái cuối cùng trong ánh sáng, trên những kẻ mạo danh, là một thứ kỳ lạ. Tôi cố gắng thiết kế các hướng dẫn giải quyết vấn đề thay vì chỉ hiển thị một số chức năng OpenGL, đặc biệt khi cuốn sách tiếp tục. Rất nhiều thiết kế hướng dẫn của tôi đến từ việc tìm cách nói về một số chủ đề nhất định trong khi vẫn biến chúng thành vấn đề thực sự và không rõ ràng, "chúng ta đang học X ngay bây giờ." Các shader hình học là một khó khăn, bởi vì chúng không thực sự giải quyết được rất nhiều vấn đề.

Những kẻ mạo danh đại diện cho một vấn đề mà GS thực sự hữu ích để giải quyết. Ngoài ra, nó cho phép tôi nói về những thứ ít được sử dụng khác như discardvà thay đổi độ sâu của một mảnh. Và nó thực sự cho thấy sức mạnh của shader: bạn có thể biến một hình vuông phẳng trở thành một hình cầu.

Các hướng dẫn kết cấu cũng thú vị. Một trong những lý do tôi không nói về kết cấu màu khuếch tán cho đến khi lý do thứ ba là không nói về kết cấu sRGB trong một thời gian. Bằng cách này, tôi có thể nói về các vấn đề cơ bản xung quanh kết cấu (tải dữ liệu, đưa chúng vào shader, lọc, kẹp, v.v.) mà không phải xử lý các vấn đề tuyến tính. Vì vậy, sau đó tôi có thể dành toàn bộ hướng dẫn về chủ đề đó. Điều đó cho phép tôi thực sự, thực sự nhấn mạnh tầm quan trọng của việc duy trì một đường ống màu tuyến tính.

Đó là một trong những thú cưng của tôi.


1
Tôi mới bắt đầu đọc sách / mã nguồn của bạn, và thật không thể tin được .. cảm ơn bạn rất nhiều vì đã phát hành miễn phí!
Alex Coplan

Mặc dù tôi là một anh chàng viễn thông, chỉ đơn giản là thử làm hướng dẫn của bạn. Và họ thực sự tốt đẹp cho một người mới. Điều duy nhất là, sdk opengl không chính thức không thể được xây dựng đúng với Ubuntu12.04 + Eclipse. Có cách nào để chúng ta có thể cài đặt trực tiếp không? (Giống như chúng ta làm cho GL, GLEW, GLU,
glut

@iammilind: " không thể xây dựng chính xác " Làm thế nào để xây dựng thất bại? Ngoài ra, không có "cài đặt"; đó là một nửa điểm. Đó là một cơ chế sao chép / khởi động / và chạy mà không cần cài đặt hệ thống, phụ thuộc, PPM hoặc bất kỳ số thứ nào khác mà tôi không hiểu hoặc có bất kỳ ý tưởng nào về cách sử dụng trong Linux. Bạn đặt nó ở nơi bạn muốn chứ không phải nơi hệ thống của bạn nghĩ rằng nó nên đi.
Nicol Bolas

1
Trong Ubuntu, thật không may, quá trình xây dựng thất bại ở preamakechính giai đoạn :( ... Nó sẽ giúp ích rất nhiều, nếu trong thời gian rảnh bạn có thể thử thực hiện các hướng dẫn mã của mình với Ubuntu + Eclipse. Bây giờ, cách khác tôi đang làm theo là để sử dụng tài liệu đọc mà bạn đã cung cấp và liên quan đến một số hướng dẫn về mã khác. Lý do là tôi đã thấy "arcsynt tổng hợp" là nơi tốt nhất để truy cập web cho người mới học OpenGL.
iammilind

@iammilind: Tôi nhận thấy rằng bạn đã không báo cáo lỗi. Làm thế nào để bạn mong đợi những điều này sẽ được sửa chữa mà không có một?
Nicol Bolas


8

Cuốn sách duy nhất của tôi về OpenGL là "OpenGL SuperBible, phiên bản thứ 4" và thứ 5 sắp được phát hành trong vài tuần nữa. Tôi nghĩ rằng nó tốt cho cả người mới bắt đầu và lập trình viên tiên tiến.

Chỉnh sửa: Tôi có thể thêm không đi theo xu hướng công nghệ mới nhất nếu bạn chỉ học lập trình. Có thể một khi bạn trở thành một chuyên gia sử dụng một phương pháp đo lường, 5 giao diện / phiên bản mới vừa được phát hành. Có vẻ như chúng ta đã thấy các shader tiến lên cứ sau 3 tháng. Vì vậy, hãy chọn những gì có tài liệu tốt nhất (nói chung là nguyên thủy), tạo một vài chương trình và dần dần tiến lên vì nhiều khả năng bạn sẽ va vào mã cũ hơn trong tương lai. Hy vọng nó giúp!


Bây giờ tôi đang trải qua sự tuyệt vời và nó thực sự tốt cho những người không có nền tảng đồ họa vì nó giải thích tất cả các khái niệm khi bạn đi cùng.
Spidey

5

Như thường lệ, cách tốt nhất để học là làm điều đó. Tôi sẽ không chi tiêu tiền trừ khi bạn cảm thấy bạn thực sự được hưởng lợi từ việc có một cuốn sách giáo khoa để đọc, hầu hết (nếu không phải tất cả) thông tin có thể được tìm thấy trực tuyến. Ngoài việc học OpenGL, bạn có thể muốn theo dõi Đại số tuyến tính của mình, điều đó không bao giờ gây tổn thương.

Vấn đề lớn mà tôi gặp phải là rất nhiều thứ đã được đưa ra trong phiên bản OpenGL gần đây.

Tài nguyên tốt nhất tôi có thể tìm thấy là tại Joe's Blog . Tốt nhất là giới thiệu đường ống hiện đại và giúp bạn vượt qua một số ví dụ theo cách dễ đọc hơn những gì tôi có thể tìm thấy ở nơi khác. Có vẻ như Nehe đã nhận được một vài cập nhật gần đây và trong khi bài học của họ vẫn cũ, một số các tin tức có thể quan tâm. Lazy Foo ' cũng là một tài nguyên tuyệt vời, nhưng giống như Nehe, hướng dẫn sử dụng tài liệu bị lỗi thời.

Tôi nghĩ sau một hoặc hai ngày cuối tuần, một khi bạn cảm thấy thoải mái, hãy thực hiện một dự án nhỏ để áp dụng mọi thứ. Breakout, hoặc tetris - thứ mà bạn có thể tập trung vào chính mã. Bạn học được nhiều hơn khi bạn đi và cố gắng thực hiện một dự án thực tế, bất kể đơn giản như thế nào.



3

Cách tốt nhất để học OpenGL là sử dụng nó. Tôi khuyên bạn nên viết công cụ của riêng bạn. Điều này có vẻ như một nhiệm vụ khó khăn, và nó là. Động cơ đầu tiên của bạn sẽ không tốt lắm, nhưng bạn sẽ học được nhiều điều.

Về cơ bản: viết một công cụ, sử dụng nó cho một trò chơi, tìm ra những gì bạn không thích về nó và viết lại nó. Tiếp tục làm điều đó và bạn sẽ trở nên tốt hơn tại OpenGL. :)

Những gì bạn sẽ cần:

  • Một số cách để tải mô hình (.obj)
  • Một số cách để tải kết cấu
  • Ánh sáng, trong đường ống chức năng cố định hoặc trong bóng đổ
  • Đối với bất kỳ cảnh nào phức tạp hơn một chút so với ấm trà trên màn hình, biểu đồ cảnh
  • Rất nhiều công cụ nhỏ bé (lớp vectơ 3d, lớp bậc bốn, lớp máy ảnh, trình quản lý cảnh, v.v.)

Đây đã là rất nhiều công việc.


Bạn có thể chỉ cho tôi bất kỳ tài liệu nào về kiến ​​trúc cơ bản hoặc các thành phần mà "động cơ đầu tiên" nên có không? Đây thực sự có vẻ là một cách tốt để làm bẩn tay tôi khi mở ...
DFectuoso


4
-1 Công cụ viết như một cách để tham gia vào gamedev không tốt lắm. Bạn không biết những gì để đưa vào động cơ, ví dụ. khoaninja.com/blog/write-games-not-engines
Vịt Cộng sản

@TheCransistDuck SADLY, khoaninja không còn nữa. web.archive link
bobobobo 23/03/13

2

Tôi đã học opengl bằng cách viết một trò chơi "đơn giản": 3D Tetris !

Hãy thử tạo trò chơi / ứng dụng đơn giản của riêng bạn:

  • Tiểu hành tinh
  • Pông
  • Thanh cuộn bên đơn giản (bạn có thể học cách tải mô hình cho người chơi / kẻ thù. Bạn không có? Sử dụng mô hình Quake)
  • Máy phát địa hình 3d

Làm điều gì đó đơn giản mà bạn quan tâm!


2

Chúng tôi thực hiện một số OpenGL (ES) trong trò chơi Craps dành cho iPhone của chúng tôi nhưng nó đã được xử lý bởi một lập trình viên với kỹ năng 3D điên rồ. Vì vậy, vì điều này tôi đã học OpenGL (ES) để tôi biết tôi đang nói về điều gì và để tôi có thể viết mã cùng với nhóm.

Một trang web tôi thấy hữu ích, với một loạt các hướng dẫn, là blog của Jeff LaMarche: http://iphencedevelopment.blogspot.com và đây là một liên kết cho các bài đăng OpenGL của anh ấy: http://iphencedevelopment.blogspot.com/2009/05/ opengl-es-from-ground-up-table-of.html

Và từ OpenGL.org có hai liên kết này hữu ích: http://www.opengl.org/code/http://www.opengl.org/resource/features/

Cách tốt nhất, đã được nêu ở trên nhiều lần. Nhảy vào và làm một cái gì đó nhỏ, đó là thú vị, và làm theo cách của bạn. Đó là tất cả về việc hiểu cảnh, máy ảnh và vật liệu (shader). Khi bạn hiểu được những khái niệm này, bạn có thể bắt đầu xem xét các động cơ vật lý, phát hiện va chạm, hiệu ứng hạt và những thứ tương tự. Khốn nạn! (^ ^ ^)

Chúc may mắn với tất cả những nỗ lực của bạn, Kevin


2

Chà, không ai nói về Hướng dẫn lập trình OpenGL , tôi không có phiên bản đặc biệt này nhưng phiên bản cũ hơn thì khá hay.


1
Vui lòng cho tôi biết thêm về nó. Tôi tự hỏi làm thế nào điều này tốt hơn / khác với siêu kinh thánh và nếu nó đáng để dành thời gian để đọc những cuốn sách lớn như vậy (không vi phạm nhưng nếu phải mất hơn 20 giờ để đọc một cuốn sách tôi muốn chắc chắn rằng nó đáng giá =))
DFectuoso


2

http://www.opengl-tutorial.org/

Có hướng dẫn cho OpenGL 'hiện đại (lõi 3.0 / 4.0, ví dụ: không có nội dung lỗi thời (như glBegin / glEnd) được dạy). Mặc dù các hướng dẫn sử dụng shader, những điều cơ bản được giải thích rất chi tiết, xây dựng một nền tảng toán học vững chắc trên đường đi. Văn bản được làm tròn độc đáo với các mẫu mã * và trực quan hữu ích.

Hướng dẫn trung gian bao gồm những thứ như ví dụ sử dụng Quaternions hoặc Lightmaps .

. * glm được sử dụng làm thư viện toán học


1

Chỉ cần lưu ý cách tốt nhất để học OpenGL là định hướng nhiệm vụ . Cố gắng làm một cái gì đó (như thêm một tính năng vào trò chơi của bạn) sau đó tìm kiếm những gì được yêu cầu để làm điều đó .

Hướng dẫn và hướng dẫn thực sự nhàm chán nếu không có bối cảnh lớn hơn - tức là một cái gì đó vượt ra ngoài hướng dẫn mà bạn muốn tự mình đạt được.


-1

Bắt đầu với NeHe để nhanh chóng có được hình tam giác đầu tiên của bạn trên màn hình. Làm một vài trong số các hướng dẫn cho người mới bắt đầu ở đó để hiểu các khái niệm cơ bản của lập trình 3D. Nếu, như bạn ngụ ý, khi đề cập đến OpenGL ES, bạn đã biết những điều cơ bản về lập trình 3D (ma trận là gì, chúng được sử dụng để làm gì, các ma trận khác nhau được sử dụng để chiếu các đỉnh trên màn hình, các đỉnh là gì, v.v.), sau đó tôi khuyên bạn không nên lãng phí thời gian với NeHe, bởi vì điều đó có thể làm bạn chậm lại (bằng cách dạy cho bạn những điều bạn phải "không học" sau này).

Ngoài ra, tôi đồng ý rằng cách tốt nhất để học nó là làm. Một dự án phi thế giới tốt đầu tiên có thể là một trò chơi 2D (hoặc một công cụ trò chơi 2D). Sử dụng OpenGL hiện đại cho các ứng dụng 2D có thể dạy cho bạn rất nhiều khái niệm có liên quan (ví dụ như sử dụng bộ đệm và trình đổ bóng), và nó sẽ ít gây nản lòng hơn so với dự án 3D. Sau đó, sau đó, bạn có thể áp dụng những gì bạn đã học được khi làm ứng dụng 3D.


NeHe đã lỗi thời. Ngoài ra, mặc dù việc sáng tạo nghệ thuật dễ dàng hơn và bạn chủ yếu xử lý các hình tứ giác có kết cấu, có rất nhiều trường hợp góc (ví dụ: sản phẩm chéo vector) khiến việc viết trò chơi 2D trước khi viết trò chơi 3D trở nên khó khăn hơn. Các trò chơi có đồ họa 3D nhưng chơi trò chơi 2D (ví dụ: Pong, Breakout, ...) có thể dễ dàng hơn các trò chơi 2D / 3D thuần túy.
Exilyth

-4

Vâng, tôi đã được nói đi nói lại rằng hướng dẫn của nehe là tốt nhất, tôi đoán họ cũng sẽ phù hợp với bạn! http://nehe.gamedev.net/ Tôi đã mua sổ đỏ ...


Đây có vẻ như là một tập hợp thú vị của các khối nhỏ từ số không đến một nơi tuyệt vời, cảm ơn!
DFectuoso

2
Tôi phải hoàn toàn không đồng ý. Vâng, hướng dẫn NeHe đã có từ lâu, nhưng họ chưa bao giờ có một phong cách rất tốt và bây giờ họ đã khá lỗi thời.
Andreas

8
-1 Nehe đã quá lỗi thời.
Axel Gneiting

7
-1. Đã học đủ thứ xấu từ nehe!
Gabriel Isenberg

-1. NeHe nên gắn nhãn hướng dẫn của nó là lỗi thời và lỗi thời.
Quazi Irfan
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.