Làm thế nào để các công cụ như Unreal liên quan đến OpenGL hoặc DirectX?


8

Tôi hoàn toàn mới đối với đồ họa máy tính, và thậm chí còn hơn thế nữa, để phát triển trò chơi. Tôi đang tìm kiếm thông tin để tìm hiểu những điều cơ bản, nhanh chóng. Tôi có một câu hỏi trong đầu; Làm thế nào để các công cụ như Crytek Engine hoặc Unreal Engine liên quan đến OpenGL hoặc DirectX?

Tôi rất quan tâm đến vật lý trò chơi, nhưng tôi không thể hiểu làm thế nào vật lý, đồ họa và động cơ kết hợp với nhau; Có những khoảng trống tôi không thể lấp đầy.


Đây là một phần của câu trả lời nhưng nó chỉ mang lại những câu hỏi khác. scientificninja.com/blog/write-games-not-engines
BRabbit27

Vật lý đi vào đâu? Giống như tôi nên viết một thuật toán vật lý, ví dụ thuật toán va chạm và sau đó làm cho một số vòng tròn được tạo trên OpenGL hoạt động theo thuật toán vật lý của tôi?
BRmus27

Câu trả lời:


10

TL; DR: Một động cơ chỉ là một tập hợp các thành phần có thể tái sử dụng.

Bức tường văn bản: Các trò chơi lưu trữ một đại diện của thế giới, ví dụ: bạn có một thực thể như một ngôi nhà, trong đó có một lưới xác định hình dạng của nó trông như thế nào và một vị trí.

Bây giờ, bạn có thể có nhiều hơn một thực thể. Giả sử chúng ta có một nhân vật do người chơi điều khiển và một số hộp. Khi người chơi muốn di chuyển, bạn sẽ di chuyển nhân vật và kiểm tra xem anh ta có va chạm với bất kỳ hộp nào không. Đó là nơi vật lý phát huy tác dụng. Tùy thuộc vào cách vật lý được mô hình hóa, nhân vật có thể chỉ cần đi qua các hộp, dừng lại trước các hộp hoặc đẩy các hộp.

Tâm trí bạn, điều này chỉ thay đổi trạng thái nội bộ của thế giới trò chơi.

Sau đó, sau khi tính toán chuyển động và vật lý, bạn sẽ hiển thị một khung, ví dụ: vẽ trạng thái hiện tại của thế giới trên màn hình.

OpenGL và DirectX là các API đồ họa, chúng chỉ được sử dụng để hiển thị nội dung (ví dụ: ký tự) lên màn hình.

Vì vậy, về cơ bản, bạn đang nói với OpenGL / DirectX 'Tôi muốn vẽ ký tự ở vị trí 1 và một hộp ở vị trí 2 và ...'.

Tất nhiên, đây là một sự đơn giản hóa quá mức.

Dù sao, vì chúng tôi không muốn thực hiện từng bước thủ tục đó, chúng tôi đặt công cụ đó vào các chức năng và các lớp. Vì vậy, chúng ta có thể có một lớp vật lý chứa tất cả các chức năng cần thiết cho mô phỏng vật lý hoặc một lớp đồ họa có giao diện với api đồ họa và vẽ các thực thể của chúng ta. Et voila, chúng tôi đã có một động cơ.


Có một giọng thiếu "Et voilà" haha ​​chỉ đùa thôi. Cảm ơn rất nhiều, tôi nghĩ rằng tôi đã suy nghĩ đúng nhưng không chắc chắn nên tôi quyết định hỏi. Cảm ơn rất nhiều!
BRmus27

2
DirectX không phải là API đồ họa, nhưng Direct2D và Direct3D thì có.

@JaakkoLipsanen vâng tôi thấy bây giờ, DirectX là một khung hoàn chỉnh để phát triển trò chơi (3d, âm thanh, video, v.v.) và Direct3D chỉ là mô-đun đồ họa.
BRmus27
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.