Toán học cơ bản trong phát triển game

  • Tổng số bài viết: 2
  • Số lần được cảm ơn: 6

Toán học cơ bản trong phát triển game Tác giả: giang

Chào mọi người,

Trong suốt quá trình làm game 3 năm nay, mình gặp rất nhiều câu hỏi dạng:
- Làm thế nào để đối tượng đi vào tâm màn hình?
- Làm thế nào để biết đối tượng này đứng trước hay sau đối tượng kia?
- Làm thế nào để đưa đối tượng này đến vị trí kia với tốc độ tăng dần?
- Ánh sáng trong game hoạt động như thế nào?
- vân vân và mây mây.

Điểm thú vị ở đây, là mặc dù có nhiều cách để giải quyết các vấn đề này, nhưng những cách đơn giản nhất lại là những kiến thức toán học mà chúng ta vô tình bỏ qua do lâu không đụng vào toán nên quên, do vốn không biết, hoặc do vô tình bỏ qua tầm quan trọng của toán học trong lập trình game nói chung. Những người hay gặp khó khăn trong các vấn đề này thường thuộc hai nhóm sau:
- Những người nhảy ngang: nhóm đối tượng này thường thiếu kiến thức nền, học hành theo kiểu cóp nhặt trên đường đi.
- Các bạn trẻ cấp 2 hoặc cấp 3: các bạn này thì kiến thức toán học chưa đủ vững.

Lý do chung của cả hai nhóm đối tượng trên đều là "Không nghĩ làm game lại cần nhiều toán đến thế". Mình viết loạt bài này nhằm tổng hợp các kiến thức toán học cần thiết để làm game. Những kiến thức này không bị gói gọn trong bất kỳ một công cụ nào, một engine nào, hay một ngôn ngữ lập trình nào, có nghĩa là bạn có thể dùng những kiến thức này với mọi loại công cụ.

Trong bài sẽ dùng rất nhiều công thức toán, tuy nhiên mình sẽ cố gắng làm cho mọi thứ rõ ràng dễ hiểu nhất có thể cho các bạn dễ theo dõi. Mình cũng sẽ dành thời gian nói kỹ về ứng dụng của các thành phần toán học mà mình mang ra giới thiệu, để các bạn không cảm thấy phí phạm thời gian khi đọc loạt bài của mình.

Có một vài điều mình cần lưu ý:
- Loạt bài này không thể, cũng như không có ý định, thay thế các tài liệu toán học truyền thống. Mình chỉ cố gắng làm cho giai đoạn khởi đầu của các bạn được dễ dàng, các bạn có thể nắm các khái niệm cơ bản. Để đào sâu hơn, mình rất khuyến khích các bạn tìm hiểu ở các nguồn tài liệu chính thống.
- Mình sẽ cố gắng giải thích các vấn đề từ gốc rễ, nhưng loạt bài này không thể bao trùm tất cả các kiến thức toán học từ A-Z. Do vậy, mình cho rằng nếu bạn chưa nắm rõ các khái niệm toán học phổ thông như hệ toạ độ hay lượng giác, thì loạt bài này vẫn sẽ khó hiểu (chú ý này dành cho các bạn học sinh cấp 2, cấp 3 là chủ yếu).

Danh sách bài:
Thành viên Cảm Ơn bạn: manh, nhatminh
Sửa lần cuối: 1 năm 6 tháng trước bởi manh. Lý do: Dùng tiêu đề ngắn hơn
1 năm 7 tháng trước #1

Vui lòng Đăng nhập hoặc Tạo tài khoản để tham gia cuộc hội thoại.

  • Tổng số bài viết: 2
  • Số lần được cảm ơn: 6

Trả lời của giang trong chủ đề Phần 1: Hệ toạ độ

Phần 1: Hệ toạ độ

Mọi thứ trong toán học 3D nói chung đều bắt đầu từ hệ toạ độ. Từ hệ toạ độ, chúng ta sẽ suy ra được rất nhiều thông tin như vị trí, khoảng cách, hay góc quay, do vậy mình cho rằng đây là một điểm bắt đầu tốt. Trong bài viết này các bạn sẽ được giới thiệu cách biểu diễn hệ toạ độ 2D và 3D, cách biểu diễn toạ độ bất kỳ cùng một vài thứ khác.

Trong toán học 3D, phương pháp biểu diễn hệ toạ độ duy nhất chúng ta cần quan tâm đó là hệ toạ độ Đề-các (Cartesian coordinate system). Mặc dù hệ toạ độ Đề-các tổng quát có thể có n chiều tuỳ ý, mình sẽ chỉ nói về hệ toạ độ Đề các trong mặt phẳng 2D và không gian 3D mà thôi.

1. Hệ toạ độ 2D:


Như đã nói ở #1, mình mặc định là mọi người đều biết về một vài kiến thức toán học cơ bản trong trường, và hệ toạ độ 2D là một trong số đó. Do đó mình sẽ chỉ nói sơ qua và hết sức ngắn gọn về hệ toạ độ này.

Cấu tạo của hệ toạ độ rất đơn giản, chúng ta có một điểm đặc biệt gọi là gốc toạ độ (tiếng Anh là origin). Tất cả các điểm khác đều được biểu diễn bằng khoảng cách tương đối từ điểm đó cho đến điểm gốc toạ độ này.

Khoảng cách tương đối đó được đo như thế nào? Chúng ta có hai đường thẳng, vuông góc với nhau tại gốc toạ độ, gọi là hai trục toạ độ (tiếng Anh là axis, số nhiều là axes), và quy ước tên cho hai trục này là trục x (ngang) và trục y (dọc). Các trục toạ độ bao giờ cũng đi kèm với mũi tên ở một đầu, tượng trưng cho chiều dương, tức là nếu bạn đi theo chiều này, giá trị số bạn thu được sẽ tăng dần, và ngược lại, nếu bạn đi ngược chiều, gía trị số bạn thu được sẽ giảm dần.

Với một điểm P bất kỳ trên hệ trục toạ độ, nếu bạn gióng hai đường thẳng vuông góc xuống trục x và trục y, giao hai trục này lần lượt tại hai giá trị \(x_P\) và \(y_P\), khi đó ta nói điểm P có toạ độ là \((x_P, y_P)\). Như vậy, gốc toạ độ sẽ có toạ độ là \((0, 0)\).
Thành viên Cảm Ơn bạn: manh, letaii, benson15, k2m58it
Sửa lần cuối: 1 năm 6 tháng trước bởi manh. Lý do: Upload ảnh lên imgur vì google drive không hiển thị được
1 năm 7 tháng trước #2

Vui lòng Đăng nhập hoặc Tạo tài khoản để tham gia cuộc hội thoại.

Thời gian tải trang: 0.197 giây
©2019 GameDevSpot. All Rights Reserved.

Công cụ