OpenGL vs OGRE: Cái nào tốt nhất cho người mới bắt đầu? [đóng cửa]


10

Tôi quan tâm đến việc phát triển trò chơi và sở hữu các kỹ năng lập trình C / C ++ tốt. Tôi đã thử OGRE trước đây và tôi tò mò liệu tôi nên học OGRE hay OpenGL làm điểm khởi đầu.

Theo hiểu biết của tôi, OGRE là một trình bao bọc cho OpenGL và DirectX. Vì vậy, giả sử tôi học OGRE, tôi vẫn cần học OpenGL để phát triển trò chơi chứ?

Ngoài ra, ai đó có thể chỉ cho tôi hướng dẫn tốt cho OpenGL không? Tôi thấy rằng OGRE được ghi chép tốt (thậm chí nó còn đi kèm với bản phân phối!) Nhưng đối với OpenGL, hầu hết các hướng dẫn tôi đã xem đều lỗi thời.


Nếu bạn là người hoàn toàn mới đối với lập trình đồ họa 3D, tôi sẽ thử cảm nhận về cách các API cấp thấp hoạt động trước tiên (OpenGL hoặc D3D, điều đó không thực sự quan trọng) và sau đó chuyển sang công cụ đồ họa được tạo sẵn như vậy như OGRE để bạn có thể tập trung vào ứng dụng / trò chơi của mình thay vì thiết kế / phát triển công cụ kết xuất.
drxzcl

1
Tôi sẽ đi 2D trước, thay vì 3D.
Vịt Cộng sản

1
Hầu hết 2D không chỉ là "3D không có Y" và có thành ngữ và kỹ thuật đi kèm riêng, tôi không chắc chắn việc theo dõi phụ vào 2D sẽ tốt cho người có "c / c ++" tốt.
Patrick Hughes

Tại sao câu hỏi này không mang tính xây dựng?
Songbreaker

Câu trả lời:


13

Ogre thực sự là một trình bao bọc cho OpenGL, tuy nhiên ý tưởng của trình bao bọc như vậy là bạn không phải lo lắng về những rắc rối của OpenGL. Tất nhiên sẽ giúp biết một chút về OpenGL, nhưng Ogre sẽ che giấu rất nhiều chi tiết xấu xí cho bạn.

Tôi có thể nói rằng Ogre dễ học hơn so với OpenGL, hoặc ít nhất nó sẽ giúp bạn có kết quả thú vị nhanh hơn. Tất nhiên, điều đó hoàn toàn phụ thuộc vào những gì bạn muốn làm để khẳng định nếu nó đáng để học OpenGL.

Về hướng dẫn OpenGL, vâng, hầu hết trong số chúng đều khá lỗi thời, tuy nhiên thông số kỹ thuật đã không tiến lên rất nhanh nên rất nhiều hướng dẫn cũ vẫn áp dụng cho hầu hết OpenGL.

Một vài trong số yêu thích của tôi:


28
XIN VUI LÒNG dừng gửi người đến NeHe. Các hướng dẫn là tốt, nhưng vô cùng lỗi thời. Thời của OpenGL 1.x đã qua lâu, chúng ta hãy cố gắng không làm tê liệt thế hệ lập trình viên đồ họa tiếp theo ngay ngoài cổng!
drxzcl

5
Xem "Giới thiệu về OpenGL hiện đại": duriansoftware.com/joe/ từ
drxzcl

1
@Ranieri Tôi hoàn toàn, rất đồng ý. Trang web vẫn giữ nguyên trong nhiều năm và nhiều năm, và bây giờ OpenGL đã thay đổi khá mạnh mẽ trong vài năm qua, nó thực sự cần phải được khuyến khích. @Songbreaker vui lòng lưu ý điều này và xem xét tránh các hướng dẫn của NeHe, hoặc ít nhất là dùng chúng với một hạt muối. Các đường ống cố định đã qua lâu rồi.
Ricket

1
@ Ranieri, @ Ricket Tôi hoàn toàn không đồng ý. Hãy xem xét đường cong học tập cho OpenGL 4.x cho người mới bắt đầu hoàn toàn không quen với lập trình đồ họa và đang chọn SDK ở bên cạnh trong thời gian rảnh, không có hướng dẫn. Tài liệu về OpenGL 4.x như thế nào? Xem bài viết của tôi để biết thêm chi tiết.
Andrew Rasmussen

4
@Songbreaker: Mình cố gắng. Tôi sẽ để nó cho bạn quyết định xem chúng có tốt hay không.
Nicol Bolas

17

OpenGL! Có, tôi không đồng ý với tất cả mọi người trên diễn đàn này.

OGRE là một mớ hỗn độn. Các đường cong học tập là dốc. Vâng, họ đã có một số hướng dẫn tốt đẹp, nhưng bước ra ngoài giới hạn của hướng dẫn và thực hiện công việc của riêng bạn là RẤT khó khăn. Tôi dự kiến ​​sẽ dành ba tuần trước khi bạn có thể thiết lập và làm việc OGRE, làm việc thông qua các hướng dẫn và tìm ra những việc cần làm tiếp theo. Không có gì về OGRE tốt hơn hoặc đơn giản hơn OpenGL. Nếu bạn là một lập trình viên C giỏi như bạn đã tuyên bố và bạn hiểu con trỏ / mảng / hàm của mình, OpenGL sẽ dễ dàng như vậy, nếu không muốn nói là dễ dàng hơn.

Đó là lý do tại sao tôi thực sự khuyên bạn nên bắt đầu với OpenGL. OpenGL sẽ buộc bạn phải tìm hiểu tất cả các nguyên tắc cơ bản của đồ họa. Điều đó thú vị hơn nhiều khi bạn thực sự sẽ nhận ra những gì họ đang diễn ra trong nền. Và CÓ bắt đầu với hướng dẫn của NeHe. Vâng, chúng là 1.x rất lỗi thời (cái này là dành cho bạn, Ranieri), nhưng nhảy vào OpenGL 4.x là một đường cong học tập quá dốc.

Bắt đầu với chế độ ngay lập tức trong 1.x (glBegin, glEnd), sau đó tìm hiểu về Mảng Vertex. Nếu bạn muốn, chơi với danh sách hiển thị chỉ để tìm hiểu. Sau đó di chuyển về phía đối tượng đệm đỉnh. Sau đó tìm hiểu về shader. Mỗi trong số các chuyển đổi này rất dễ dàng, và có rất nhiều hướng dẫn tuyệt vời trực tuyến. VBO là cốt lõi của 4.1, do đó, khi bạn đặt nó ở đó, bạn không còn học được tài liệu lỗi thời nữa và việc tiếp cận với công cụ 1.x sẽ dễ dàng hơn rất nhiều.

Ngoài ra, nếu bạn từng muốn một sự nghiệp phát triển trò chơi, không ai sẽ thuê bạn bởi vì bạn có thể tạo ra một khối lập phương trong một số thư viện. Họ sẽ thuê bạn vì bạn hiểu những gì đang diễn ra ở mức thấp nhất có thể và bạn có thể đưa ra quyết định thiết kế dựa trên kiến ​​thức quý giá đó.

Tài liệu tham khảo: Tôi đã ở nơi bạn đã. Tôi đã dành một tháng cho OGRE, một tuần để dùng thử Irrlicht, một tuần dùng thử Horde3d, hai ngày chơi với DirectX và một tháng chơi với OpenGL. Sau một tháng với OGRE, tôi hầu như không thể vượt quá phạm vi của các hướng dẫn. Sau một tháng với OpenGL, tôi đã có một nhân vật chạy quanh một thế giới minecraft, kết xuất 260.000 khối kết cấu trên mỗi khung hình với hơn 700 khung hình.


Tôi không đồng ý với tuyên bố của bạn và tôi cũng không nghĩ rằng trải nghiệm bạn đang phơi bày có ý nghĩa gì. Cả Ogre và OGL đều yêu cầu bạn phải có kiến ​​thức cơ bản về cách nói chuyện với card đồ họa, điều đó không có nghĩa là bạn phải biết OGL hoặc DX nhưng về cơ bản bạn phải biết họ có thể làm gì. Tại thời điểm này, Ogre thêm một lớp mà người mới bắt đầu sẽ mất vài tháng để thiết lập chính xác và bạn không thể nhìn thấy bằng một ví dụ bạn đã thiết lập trong một tháng. Biết OGL luôn là điều tốt, nhưng loại bỏ Ogre vì kinh nghiệm của bạn không có ý nghĩa gì.
Klaim

1
Không, OGRE không thực sự yêu cầu bạn biết cách nói chuyện với card đồ họa - đó là điểm chính của nó. Ngoài ra, OGRE không chỉ là một trình bao bọc xung quanh API đồ họa, nó còn là trình quản lý cảnh, trình tải mô hình, v.v.
Jarrett

5

Câu trả lời ngắn? OGRE.

Câu trả lời dài dòng? OGRE là một trình bao bọc trên OpenGL, do đó bạn phải thực hiện ít công việc hơn. Bạn không phải lo lắng quá nhiều về việc gửi dữ liệu tới GPU hoặc các shader ràng buộc hoặc sắp xếp các đỉnh ở mức thấp. Sử dụng OGRE nhanh hơn nhiều so với sử dụng OpenGL để sản xuất và rất có thể mã của bạn sẽ nhanh hơn (rất ít).

Nếu bạn quan tâm đến việc phát triển động cơ, hãy sử dụng GL. Khác, sử dụng OGRE. Và dù sao tôi cũng có thể bắt đầu với OGRE.


3

Biết phần cứng đồ họa máy tính là không cần thiết để phát triển trò chơi. Cần phải trở thành lập trình viên đồ họa hoặc một phần của nhóm phát triển dev trong một công ty trò chơi (Lưu ý cá nhân: đó là niềm vui tốt nhất trong toàn bộ quá trình phát triển trò chơi :)).

Nếu bạn không muốn trở thành kỹ sư kết xuất, bạn không cần phải học toàn bộ openGL hoặc DX để phát triển trò chơi.


2

Tôi sẽ không tranh luận là không tốt nhất cho người mới bắt đầu, nhưng sau đó "tốt nhất" là một thuật ngữ tương đối phụ thuộc vào chính xác những gì bạn đang muốn đạt được. Ví dụ: nếu điều bạn muốn là học lập trình đồ họa 3D để có được các kỹ năng mà bạn có thể sử dụng để có được công việc là lập trình viên đồ họa 3D cho một công ty trò chơi thì những lựa chọn đó có ý nghĩa. Với mục tiêu này, bạn cũng có thể nhìn vào DirectX.

Tuy nhiên, nếu bạn có bất kỳ mục tiêu nào khác trong tâm trí thì tôi khuyên bạn nên xem xét các lựa chọn khác. Đối với người mới bắt đầu, trong khi từ câu hỏi của bạn, người ta sẽ cho rằng bạn muốn tham gia phát triển trò chơi với tư cách là một lập trình viên, bạn thực sự không chỉ định điều đó. Cả việc viết một công cụ đồ họa trong OpenGL và xây dựng trên đỉnh của Ogre chắc chắn là dành cho các lập trình viên khó tính.

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.