Cách làm voxel tự nhiên


11

Tôi đang phát triển một trò chơi voxel, nhưng tôi nghĩ rằng tôi sử dụng sai kỹ thuật. Tôi hiện đang sử dụng gạch phẳng, để tạo khối, và tôi nghĩ có một cách tốt hơn và hiệu quả hơn.

Tôi đã thấy một trò chơi voxel, có địa hình tự nhiên. Ý tôi là không khối. Trò chơi có các khối 4 * 4 * 4 trên một mét khối và các khối như bụi bẩn, cát và đá, có các cạnh tròn và loại tan chảy với nhau (Giống như trong các trò chơi thông thường). Đây là một ảnh chụp màn hình nhập mô tả hình ảnh ở đây

Làm thế nào đạt được điều này?



Bạn có biết đây là game gì không? Làm thế nào bạn có thể chắc chắn rằng đó là voxels? Ok, tự mình tìm thấy, trò chơi có tên Blockscape: indiedb.com/games/blockscape
Babis

Có một blog tại Procworld.blogspot.com có ​​tất cả các loại bài đăng blog chi tiết về cách công cụ voxel của anh ấy được tạo ra. Các bài đăng trở lại vài năm kể từ khi động cơ còn ở giai đoạn sơ khai cho đến khi nó hiện đang được cấp phép cho Everquest Next.
stokastic

Câu trả lời:


14

Điều này đạt được bằng cách nội suy các đường dốc giữa các hình khối có chiều cao khác nhau.

Khi bạn có một khung cảnh như thế này (nhìn từ bên cạnh)

  #
 ####   ##
############

bạn sẽ thêm đa giác để làm cho nó trông như thế này:

 /#\
/####\ /##\
############

Một thuật toán để tính toán các đường dốc này là thuật toán diễu hành .

Khi bạn muốn nó thậm chí còn đẹp hơn nữa, đừng chỉ sử dụng các đa giác đơn để nội suy giữa các hình khối, hãy sử dụng các đường cong của nhiều đa giác. Nhưng hãy nhớ rằng nó sẽ thêm khá nhiều đa giác vào cảnh của bạn, vì vậy bạn chỉ nên làm điều này cho những hình khối gần với máy ảnh.


Cảm ơn bạn! Bạn có biết một nơi giải thích cách thực hiện điều này trong Thư viện trò chơi Java OpenGL, Light weight không? Chỉnh sửa: Và nếu bạn biết một kỹ thuật tốt làm thế nào để thêm phát hiện va chạm cho địa hình diễu hành, điều đó cũng sẽ được đánh giá cao.
KaareZ

@KaareZ Xin lỗi, tôi chưa bao giờ làm việc với LWJGL.
Philipp

@Philipp bạn có thể quan tâm đến câu trả lời này

1
Hoặc bạn có thể bỏ qua việc diễu hành hoàn toàn và đi đến frankpetterson.com/publications/dualcontour/dualcontour.pdf ít phức tạp hơn, bạn cũng có thể chỉ cần thêm fonction nhiễu như một phần bù vào đỉnh của đoạn cuối. Bạn vẫn có khối nhưng giờ đây chúng có đặc tính của những ngọn đồi bằng cách không được sắp xếp chặt chẽ theo đường thẳng ... kết hợp đường viền kép và điều này cho kết quả thậm chí thú vị hơn (với một công cụ sửa đổi trên đỉnh bù để kiểm soát thế hệ hữu cơ ít nhiều) .
dùng29244

forum.unity3d.com/attachments/captura-jpg.23795 đây là hình ảnh của "khối lăn" (bù được áp dụng như dịch chuyển dọc) Dưới đây là hình ảnh khác nhưng với sự dịch chuyển được áp dụng trên mọi hướng forum.unity3d.com/attachments/t1- jpg.23871 forum.unity3d.com/attachments/t2-jpg.23872 vimeo.com/27976287
user29244 16/1/2015

6

Có hai trở ngại bạn cần giải quyết để đạt được chất lượng tương tự như trong ảnh, thứ nhất là nghệ thuật và thứ hai là kỹ thuật (bộ nhớ, xử lý). Trước tiên tôi cho rằng bạn đã giải quyết vấn đề nghệ thuật của mình, bạn có thể tạo ra các mô hình, nghệ thuật và các shader, v.v. (Một phần vì tôi không thể trả lời các vấn đề nghệ thuật)

Vấn đề kỹ thuật chính là khi voxelizing những mô hình mà bạn tạo ra ở mức độ chi tiết cao, bạn sẽ kết thúc với số lượng lớn các voxels nhỏ. Xử lý và kết xuất số lượng lớn các voxels không phải là nhỏ. Câu trả lời cho điều này được gọi là Spzzy Voxel Octrees

SVO sẽ cung cấp cho bạn khả năng hiển thị các mô hình có độ chi tiết cao mà không cần xử lý tất cả các voxels, mà chỉ các mô hình có thể nhìn thấy. Lưu ý rằng để kết xuất SVO, bạn sẽ cần sử dụng phương pháp đúc tia thay vì kỹ thuật rasterization thông thường.

Thêm chi tiết về SVO trong bài báo này

Đây là một nguồn mở với việc triển khai Giấy phép BSD của SVO https://code.google.com.vn/p/ffic-spude-voxel-octrees/

Dưới đây là video giải thích kết xuất dựa trên đa giác so với SVO (ưu và nhược điểm).


Điều này thật tuyệt! Ngoài ra, hãy xem sauerbraten.org , nó sử dụng một kỹ thuật tương tự (nhưng không thực hiện các hình khối diễu hành, phần đó được để lại cho nhà thiết kế cấp độ)
Kroltan
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.