Làm cách nào để tôi chọn hệ số tỷ lệ của thế giới trò chơi 3D?


9

Tôi đang tạo một nguyên mẫu trò chơi xe tăng 3D với một số mô phỏng vật lý, đang sử dụng C ++. Một trong những quyết định tôi cần đưa ra là quy mô của thế giới trò chơi liên quan đến thực tế. Ví dụ: tôi có thể xem xét 1 đơn vị đo lường trong trò chơi tương ứng với 1 mét trong thực tế. Điều này cảm thấy trực quan, nhưng tôi cảm thấy như tôi có thể đang thiếu một cái gì đó.

Tôi có thể nghĩ về những điều sau đây là các vấn đề tiềm ẩn:

  1. Tương thích chương trình mô hình 3D. (?)
  2. Số chính xác. (Điều này có quan trọng không?) Đặc biệt ở quy mô lớn, làm thế nào các trò chơi như Battlefield có bản đồ khổng lồ: Làm thế nào họ không mất độ chính xác bằng số nếu họ sử dụng ánh xạ 1: 1 với tỷ lệ trong thế giới thực, vì biểu diễn dấu phẩy động có xu hướng mất độ chính xác cao hơn với lớn hơn số (ví dụ với đúc tia, mô phỏng vật lý)?
  3. Trò chơi. Tôi không muốn chuyển động của các đơn vị cảm thấy chậm hoặc nhanh trong khi sử dụng các giá trị gần như trong thế giới thực như -9.8 m/s^2trọng lực. (Điều này có thể là chủ quan.)
  4. Bạn có thể mở rộng quy mô lên / xuống tài sản nhập khẩu hay không, nó phù hợp nhất với một thế giới có quy mô ban đầu?
  5. Kết xuất hiệu suất. Các mắt lưới lớn có cùng số đỉnh sẽ chậm hơn để kết xuất?

Tôi đang tự hỏi liệu tôi có nên chia câu hỏi này thành nhiều câu hỏi không ...

Câu trả lời:


3

Nói chung bạn nên làm bất cứ việc gì.

  1. Vì bạn có các đối tượng ngoài đời thực nên phù hợp với quy mô của chúng (ứng dụng mô hình 3D thường có thiết lập đơn vị đo, mét, chân, v.v.), nhưng một khi bạn di chuyển khỏi xe tăng và vào cây cối và các vật thể phong cảnh khác - chúng có thể sẽ cần để được tùy chỉnh tỷ lệ để phù hợp với phong cách trò chơi của bạn (vì vậy bạn mô hình cây và có phương tiện nhân rộng nó trong trình chỉnh sửa trò chơi để làm cho nó trông đẹp, nhiều lần bạn sẽ sử dụng lại cùng một cây nhưng với quy mô khác để thêm đa dạng).

  2. Không di chuyển máy ảnh ra xa nguồn gốc thế giới, nhưng di chuyển thế giới xung quanh máy ảnh được đặt gần nguồn gốc thế giới. Bằng cách này, bạn tránh được nhiều vấn đề chính xác phát sinh khi GPU / vật lý cần so sánh chính xác các giá trị có độ chính xác kém. Nếu bạn di chuyển xe tăng và máy ảnh cách nguồn gốc 10km, độ chính xác của bạn sẽ nằm trong phân số của một milimet với float32 và điều đó có thể gây ra hiệu ứng tương tự như chiến đấu Z giữa các mô hình được chuyển đổi.

  3. Bạn sẽ phải điều chỉnh các hằng số toàn cầu để làm cho trò chơi của bạn cảm thấy tốt. Nó giống như cách bạn thay đổi quy mô tương đối của thế giới để bỏ qua những phần nhàm chán và gói những thứ thú vị hơn vào một khu vực nhỏ dài 4 km (thị trấn, sông, núi, v.v.) cách xa nhau trong thế giới thực.

  4. Nếu họ nhìn tốt hơn quy mô - quy mô họ. Nếu họ phù hợp như họ - giữ điều đó. Trò chơi và phim ảnh là một nghệ thuật hơn là về thực tế sao chép mù. Vì vậy, bạn đã tìm thấy một cái cây đẹp, chỉ cao 2m, tất nhiên bạn mở rộng nó và điều chỉnh yo trò chơi của bạn bằng các phương tiện khác (chỉnh bảng màu, chi tiết kết cấu, v.v.)

  5. Tôi nghi ngờ có sự khác biệt nào miễn là chúng có cùng số lượng pixel trên màn hình để hiển thị.


8

Nó đi từ đây.

  1. Các chương trình mô hình 3D có xu hướng cho phép bạn chọn quy mô đơn vị. Có thể giới hạn ở Imperial hoặc Metric, nhưng đó chỉ là một con số. Số có thể được chuyển đổi / thu nhỏ / điều chỉnh dễ dàng. Nó không thực sự quan trọng hệ thống những gì đơn vị bạn sử dụng, miễn là bạn sử dụng một . Hãy kiên định, vì vậy 1 mét không trở thành 1 feet.

    Chỉnh sửa: Sách: Hoàn thành mã hóa trò chơi, Bổ sung thứ ba, Chương 15, pg. 525, "Mét, Bàn chân, Khối, hoặc Kellicams?"

  2. Các trò chơi với các đỉnh lớn có thể làm một số điều. Đối với một người, họ có thể chia nó thành một đoạn nhỏ, và sau đó dữ liệu liên quan đến đoạn đó có thể chỉ định một phần bù. Tương tự như việc sử dụng Octrees, đó là một tối ưu hóa kết xuất để tránh hiển thị các phần lớn của các đỉnh không nhìn thấy. Ngoài ra, một đôi có thể lưu trữ 1.79769e + 308 , đây là một con số khá lớn, nhưng chi tiết. Một chiếc phao có thể lưu trữ 3,40282e + 038, cũng không phải là tồi tàn.

    Chỉnh sửa: Hoàn thành mã hóa trò chơi, bổ sung thứ ba, Chương 13, pg. 410, "Hệ tọa độ và hệ tọa độ" (Bảng được thêm vào cuối bài)

  3. Có lẽ bạn sẽ muốn sử dụng một hệ thống số liệu sau đó hoặc chuyển đổi nó sang hệ thống đơn vị của riêng bạn. Đáng lưu ý, có lẽ là bạn sẽ điều chỉnh giá trị đó một chút. Chắc chắn, giá trị tinh chỉnh của bạn sẽ không chính xác về mặt vật lý. Nhưng nó có thể cảm thấy chính xác hơn, nói , -9.3 m/s^2.

  4. Bạn có thể làm một trong hai cách. Mặc dù tôi sẽ nói để mở rộng quy mô tài sản. Nếu bạn mở rộng thế giới, bạn sẽ phải trải qua và thay đổi trọng lực, tính toán vận tốc và tất cả những thứ khác. Khi nhập tài sản vào Unity3D, thông thường tôi phải điều chỉnh tỷ lệ mô hình trong cài đặt nhập, vì vậy tôi giả sử Unity chia tỷ lệ. Nếu bạn muốn một cái gì đó nhiều hơn dọc theo những dòng.

  5. Lớn hay nhỏ, kích thước của đa giác / lưới không quan trọng bằng việc có bao nhiêu đa giác. Tôi cho rằng có thể có một sự thay đổi hiệu suất nhỏ tùy thuộc vào số lượng pixel mà mô hình chiếm, nhưng đó là nó. Ngoài ra, một số là 10 hoặc 100 không thay đổi bất cứ điều gì ở cuối máy tính. Nó vẫn có cùng số bit để xử lý, chỉ là các bit khác nhau là 0.

Chỉnh sửa: Bảng rơi giả định số dấu phẩy động 32 bit của IEEE.

Game Coding Complete, Third Addition, Table 13.2, pg. 411
Smallest unit         Smallest Representable object  Upper Range    Description of
                      (As a textured polygon)                       largest area

100m                  A group of redwood trees       1.67x10^9      Earth/Moon System
1m                    A Human Being                  1.67x10^7      North and South America
1cm                   A coin                         1.67x10^6      California
1mm                   A flea                         1.67x10^5      San Francisco Bay Area
100 micrometer        A grain of pollen              1.67x10^4      Downtown San Francisco

Tất cả thông tin này, và nhiều hơn nữa, trong Hoàn thành mã hóa trò chơi. Viết bởi Mike McShaffry. Một chuyên gia Công nghiệp làm việc trên các trò chơi từ Black Jack, đến Thief: Deadly Shadows.


Tôi không hài lòng với câu trả lời này vì nó không thực sự bổ sung nhiều vào câu hỏi ban đầu và không thực sự đưa ra bất kỳ ví dụ cụ thể nào. liên quan đến điểm 2 Tôi không thực sự hỏi về xác định khả năng hiển thị hoặc phân trang hình học cũng như về số dấu phẩy động tối đa .. nhưng điều tôi thực sự muốn nói là cách xử lý không chính xác bằng số với hình học lớn vì điểm nổi mất độ chính xác với số lớn hơn, nó thực sự có thể lưu trữ số lượng rất lớn nhưng với độ chính xác kém.
Concept3d

Những chỉnh sửa đó phù hợp với sở thích của bạn hơn?
Wolfgang Skyler

tốt, vâng, mặc dù tôi đã đặc biệt hỏi về stackoverflow.com/questions/872544/precision-of-floating-point này , đặc biệt là trong mô phỏng vật lý nhưng tôi nghĩ rằng cần một câu hỏi riêng.
Concept3d
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.