Các chủ đề toán học cho lập trình đồ họa 3D [đã đóng]


14

Tôi hiểu rằng các chủ đề toán học sau là bắt buộc để lập trình đồ họa 3D. Tôi đã bắt đầu làm một số trong số họ trong khóa học toán của tôi. Ai đó có thể chỉ cho tôi theo hướng của một tài nguyên giải thích cách họ áp dụng không? Những vấn đề đồ họa / trò chơi họ đang sử dụng để giải quyết?

  • toán vectơ
  • ma trận toán
  • tứ phương
  • đại số tuyến tính

Theo như tôi có thể thấy đây là tất cả các chủ đề đại số / ma trận tuyến tính. Có bất kỳ chủ đề khác cần thiết?


Câu hỏi này có một số thông tin tốt về điều đó: gamedev.stackexchange.com/questions/2029/ mẹo
michael.bartnett

@beardcp Tôi có thể đi xa như trùng lặp.
Vịt Cộng sản

Câu trả lời:


10

Đại số tuyến tính là môn học quan trọng hàng đầu đối với lập trình đồ họa 3d đơn giản đây là ngôn ngữ toán học để mô tả hình học không gian. Ba chủ đề khác của bạn thực sự chỉ là tập con của đại số tuyến tính:

  • Các vectơ là một cách suy nghĩ về các điểm trong không gian
  • Ma trận là cách suy nghĩ về sự biến đổi của không gian và các đối tượng: dịch các đối tượng, nhân rộng chúng, v.v.
  • Đệ tứ là một đại diện tự nhiên cho một nhóm con cụ thể của các phép biến đổi đó, các phép quay
  • Vân vân.

Theo như các phần toán học có liên quan khác dành cho lập trình đồ họa 3d, thứ tôi muốn khuyên rằng không có đủ tình yêu là hình học tính toán. Rất nhiều vấn đề tự nhiên làm sôi sục các chủ đề trong hình học tính toán:

  • Một trong những cách tự nhiên nhất để xác định âm lượng từ một tập hợp các điểm (ví dụ: để xác định âm lượng âm thanh trong đó tiếng ồn nền cụ thể sẽ phát hoặc âm lượng sương mù hoặc tương tự) là tìm Convex Hull của các điểm ; có các thuật toán tốt để làm điều đó trong 2 và 3 chiều, nhưng ngay cả các thuật toán 2d cũng không rõ ràng ngay lập tức.
  • Vấn đề về việc có thể xác định vật thể nào ở gần một điểm nhất định hoặc gần nhau (ví dụ, để giảm số lượng vật thể phải kiểm tra va chạm có thể xảy ra hoặc để tìm ra kẻ thù nào sẽ chú ý đến người chơi tại điểm đã cho) đi vào lĩnh vực của các vấn đề truy vấn hình học và các sơ đồ phân vùng không gian (và do đó thành các cấu trúc như cây BSP và octrees). Những ý tưởng chung tương tự cũng được sử dụng để trả lời các truy vấn 'theo dõi dòng' (ví dụ: 'chùm tia laser này đánh vào cái gì?')

Sau đó, tôi khuyến khích xem xét các phép tính cơ bản và các phương pháp số đặc biệt cho các phương trình vi phân; những thứ này ít liên quan đến đồ họa 3d hơn so với vật lý 3d, nhưng nói chung hai chủ đề được kết hợp khá chặt chẽ (ngay cả đối với các vấn đề đơn giản về động học - ví dụ, đối với hoạt hình nhân vật và tương tự) và một số kiến ​​thức về cả hai sẽ tăng cường đáng kể kiến ​​thức của bạn về một trong hai; Thật khó nếu không thể làm việc với vật lý liên quan mà không có kiến ​​thức đại số tuyến tính cốt lõi giống như sử dụng đồ họa, nhưng đồng thời có kiến ​​thức vật lý cung cấp một điểm tham chiếu khác để hiểu các chủ đề trong đồ họa.


Đây là một câu trả lời tuyệt vời, Steven, cảm ơn bạn. Tôi yêu các tóm tắt của bạn về cách suy nghĩ về vectơ, ma trận và bậc bốn (đáng buồn thay, nhiều thông tin hơn trong 2 giây so với giảng viên đại số tuyến tính hiện tại của tôi) Bạn cũng đã cho tôi hiểu rõ hơn về các loại thử thách mô hình đặt ra cho các lập trình viên đồ họa 3D. Chúc mừng!
Kinda Rix



1

Nếu bạn đã quen thuộc với tọa độ Descartes, thì việc áp dụng các chủ đề trên vào đồ họa máy tính sẽ khá rõ ràng. Có những hướng dẫn như dành cho OpenGL sẽ giúp làm rõ ứng dụng toán học để giải các bài toán hiển thị cơ bản, ví dụ: làm thế nào để tạo một mô hình khung dây xuất hiện để xoay. Bài viết Wikipedia về vẽ phối cảnh có thể giúp với một chút bối cảnh lịch sử.

Ngoài ra, có rất nhiều chủ đề hiển thị được hưởng lợi từ công thức toán học. Ví dụ, chất rắn 3D thường được biểu thị bằng hình tam giác trên bề mặt của chúng. Làm thế nào để chúng tôi chỉ hiển thị phần đó của bề mặt mà người quan sát "nên" nhìn thấy (thuật toán bề mặt / đường ẩn)? Nếu một đối tượng được chiếu sáng từ một nguồn / hướng cụ thể, làm thế nào điều này tương tác với phối cảnh để tạo ra một bề mặt thuyết phục?

Ngoài ra, có tất cả các loại chủ đề mô hình thú vị, chẳng hạn như hoạt hình của một màn sương hoặc một ngọn lửa. Nhưng việc chuyển đổi tọa độ, như danh sách các chủ đề của bạn dường như tập trung vào, là một yếu tố chính của tất cả các tiến bộ sau này.



1

Họ không phải là tất cả yêu cầu. Toán học vectơ là tất cả trên đồ họa 3D, bạn có thể thiết lập hình học mà không cần biết các điểm tốt hơn của toán học vectơ, nhưng những thứ như bản đồ vết sưng sẽ rất khó khăn và bạn sẽ rơi vào vật lý.

Đệ tứ chỉ đơn giản là cung cấp một mô tả khác nhau cho một số toán học, nó có thể tốt để có, nhưng chắc chắn không cần thiết vì toán học thông thường đủ để mô tả bất kỳ phép tính nào bạn có thể làm với các bậc bốn.

Toán học ma trận và đại số tuyến tính có liên quan rất chặt chẽ với nhau, hầu hết tất cả đều mô tả các phép toán tuyến tính trên các bộ số. Nhưng một lần nữa, đó chỉ là một cách khác để mô tả một số điều có thể được mô tả bằng vectơ và đại số.

Tôi không biết nếu bạn coi nó chỉ là một phần của toán học cơ bản, nhưng lượng giác chắc chắn cũng cần phải có trong danh sách.


Tôi đã thấy một vài đề cập đến vật lý cho đến nay - bạn có thể cho tôi biết những gì bạn đang đề cập đến ở đây không? Tôi đã không chạm vào chủ đề này trong 12 năm (tức là từ khi học cấp ba) và thật lòng tôi ghét nó. Có lẽ tôi sẽ tìm thấy ứng dụng của nó dễ dàng hơn để dạ dày mặc dù.
Kinda Rix

Vật lý Newton, chủ yếu giải quyết va chạm. Bạn có thể không được dạy những thứ này ở trường trung học, nhưng tất cả đều rất toán học, vì vậy nếu bạn thích môn toán thì bạn nên giỏi.
aaaaaaaaaaaa
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.