Kết xuất hàng nghìn tỷ nguyên tử của thành phố Thay vì đa giác?


9

Tôi chỉ thấy một video về những gì các nhà xuất bản gọi là "bước quan trọng tiếp theo sau khi phát minh ra 3D". Theo người nói trong đó, họ sử dụng một lượng lớn nguyên tử được nhóm lại thành đám mây thay vì đa giác, để đạt đến mức độ chi tiết không giới hạn .

Họ đã cố gắng hết sức để làm cho video trở nên dễ hiểu đối với những người không có kiến ​​thức về bất kỳ kỹ thuật kết xuất nào, và do đó hoặc cho các mục đích khác bỏ qua tất cả các chi tiết về cách thức hoạt động của động cơ.

Mức độ chi tiết trong video của họ trông khá ấn tượng với tôi.

  • Làm thế nào có thể kết xuất cảnh bằng các nguyên tử tùy chỉnh thay vì đa giác trên phần cứng hiện tại? (Tốc độ, trí nhớ khôn ngoan)
  • Nếu điều này là có thật, tại sao cho đến nay vẫn chưa có ai nghĩ về nó?

Tôi, với tư cách là một nhà phát triển OpenGL, thực sự gặp khó khăn vì điều này và thực sự muốn nghe những gì các chuyên gia nói. Do đó, tôi cũng không muốn nó giống như một quảng cáo rẻ tiền và sẽ chỉ bao gồm liên kết đến video nếu được yêu cầu, trong phần bình luận.


7
Chà, họ đã phát minh ra thứ cách mạng nhất kể từ khi bắt đầu đồ họa máy tính, nhưng họ không biết có bao nhiêu mm phù hợp với một inch, điều đó nói gì với bạn.

2
Họ rất hạn chế về chi tiết (tha thứ cho trò chơi chữ) về công nghệ của họ đến nỗi một cuộc thảo luận là khó khăn. Từ những gì tôi hiểu từ video, nó là 20fps trong phần mềm. Tôi thấy rất nhiều hình học tĩnh, cả một nhóm không ổn định và không biết bao nhiêu dữ liệu được tính toán trước hoặc tạo ra khi đang bay. Mặc dù vậy vẫn thú vị. Tôi sẽ không muốn gọi shenanigans hoàn toàn. Không phải với kinh phí có được, mặc dù điều đó không có nghĩa là rất nhiều.
Bart

8
Luôn luôn nghi ngờ nếu ai đó đưa ra tuyên bố tuyệt vời và chỉ hiển thị cảnh quay về một cái gì đó hoàn toàn không liên quan (chẳng hạn như Crysis). Thậm chí nhiều hơn nếu có những tuyên bố như "công nghệ được sử dụng trong y học / du hành vũ trụ" và trộn lẫn một số thứ không liên quan gì đến nhau. Chắc chắn có thể tạo ra (gần) chi tiết vô hạn theo thủ tục và chắc chắn có thể đưa ra điều đó. Vì vậy, những gì, mỗi bản demo mandelbrot 1984 có thể làm điều đó. Tuy nhiên, tuyên bố là họ làm cho các đối tượng như con voi đó chi tiết vô hạn. Và đó chỉ là những cú đánh, bởi vì họ không thể.

8
"Đồ họa của bạn sắp trở nên tốt hơn với hệ số 100.000 lần." Yêu cầu đặc biệt đòi hỏi bằng chứng phi thường.
Brad Larson

Câu trả lời:


11

Thật dễ dàng để làm điều đó. Sử dụng Octtree, bạn chỉ cần chia thế giới thành các phần nhỏ dần cho đến khi bạn đạt được mức độ chi tiết cần thiết. Đây có thể là kích thước của một hạt cát chẳng hạn. Hãy nghĩ Minecraft đưa đến một thái cực.

Bạn làm gì sau đó? Nếu chi tiết đủ nhỏ, bạn có thể xem xét các khối kết xuất - các nút lá của octtree. Các tùy chọn khác bao gồm hình cầu hoặc thậm chí nguyên thủy hình học. Một màu sắc và bình thường có thể được lưu trữ tại mỗi nút và để giảm LOD, người ta có thể lưu trữ thông tin tổng hợp ở các cấp cao hơn của cây.

Làm thế nào bạn có thể quản lý rất nhiều dữ liệu? Nếu cây là một cấu trúc dữ liệu thực tế, bạn có thể có nhiều con trỏ tham chiếu cùng một cây con, giống như sử dụng lại một kết cấu nhưng nó cũng bao gồm cả hình học. Bí quyết là sử dụng càng nhiều càng tốt ở tất cả các cấp. Ví dụ: nếu bạn kết nối 4 octant trong sắp xếp tứ diện tất cả với cùng một nút con ở tất cả các cấp, bạn có thể tạo một fractal sierpinky 3d rất lớn mà hầu như không cần bộ nhớ. Tất nhiên cảnh sẽ lớn hơn nhiều.

Vấn đề là nó sẽ chỉ hoạt động đối với hình học tĩnh bởi vì hoạt hình thực sự sẽ yêu cầu thao tác với tất cả dữ liệu đó trong mỗi khung hình. Tuy nhiên, kết xuất, đặc biệt với LOD biến không có vấn đề.

Làm thế nào để làm cho một điều như vậy? Tôi là một fan hâm mộ lớn của phương pháp dò tia, và nó xử lý loại điều đó khá tốt khi có và không có GPU.

Tất cả điều này là suy đoán của khóa học. Tôi không có thông tin cụ thể về trường hợp bạn đang nói về. Và bây giờ cho một cái gì đó liên quan nhưng khác nhau:

Một lượng lớn dữ liệu được hiển thị

EDIT Và đây là một cái mà tôi đã làm, nhưng tôi đã cố tình thay đổi các quy tắc để làm cho các hộp rõ ràng hơn:

Chú thỏ Stanford trong voxels

Tốc độ khung hình đó là trên một IIRC lõi đơn. Nhân đôi độ sâu của cây nói chung sẽ giảm tốc độ khung hình xuống một nửa, trong khi sử dụng nhiều lõi sẽ có tỷ lệ độc đáo. Thông thường tôi giữ nguyên thủy (hình tam giác và như vậy) trong octtree của mình, nhưng vì nụ cười tôi đã quyết định kết xuất các nút lá của chính cây trong trường hợp này. Hiệu suất tốt hơn có thể có nếu bạn tối ưu hóa xung quanh một phương pháp cụ thể.

Ở đâu đó trên ompf có một chiếc xe được làm bằng voxels thực sự tuyệt vời - ngoại trừ việc nó tĩnh. Dường như không thể tìm thấy nó bây giờ ...


Tôi đồng ý với đánh giá này: chỉ xem video bản thân và bị ấn tượng bởi cảnh tĩnh của chúng (buồn cười khi so sánh với cỏ đa giác; ít nhất là nó thổi trong gió trong khi rõ ràng là của chúng).
timday

1
Thật không may các liên kết đã chết.
Joachim Sauer

1
@JoachimSauer Thật vậy, diễn đàn OMPF đã bị sập cách đây một thời gian. Một sự thay thế trực tiếp có sẵn ở đây nhưng tôi không biết liệu có bất kỳ nội dung nào đã được di chuyển hay không.
Bart

Không giống như nó. Tìm kiếm "chú thỏ" trên diễn đàn đó không có kết quả cho tôi.
Joachim Sauer

liên kết đầu tiên mở cửa sổ bật lên và hộp cảnh báo -1
NimChimpsky

6
  • Làm thế nào có thể kết xuất cảnh bằng các nguyên tử tùy chỉnh thay vì đa giác trên phần cứng hiện tại? (Tốc độ, trí nhớ khôn ngoan)

Từ việc xem video, không có gì cho tôi thấy rằng bất kỳ phần cứng đặc biệt nào đã được sử dụng. Trong thực tế, nó được tuyên bố rằng điều này chạy trong phần mềm ở tốc độ 20fps, trừ khi tôi đã bỏ lỡ một cái gì đó.

Có lẽ bạn sẽ ngạc nhiên khi biết rằng mặc dù đã có khá nhiều sự phát triển trong kết xuất thời gian thực bằng cách sử dụng một loạt các công nghệ như dò tia, kết xuất voxel và ghép mặt. Thật khó để nói mặc dù những gì đã được sử dụng trong trường hợp này. (Nếu bạn quan tâm, có một cái nhìn tại http://igad2.nhtv.nl/ompf2/ cho một diễn đàn real-time ray tracing lớn, hoặc http://www.atomontage.com/ cho một động cơ voxel thú vị. Google "ghép mặt" cho một số liên kết tuyệt vời về chủ đề đó)

Nếu bạn xem phim, bạn sẽ nhận thấy rằng tất cả hình học là tĩnh và mặc dù chi tiết, có khá nhiều sự lặp lại đối tượng, có thể gợi ý về việc kích hoạt.

Và rất có thể sẽ có rất nhiều sự hủy bỏ tích cực, mức độ chi tiết và phân vùng không gian đang diễn ra.

Nếu bạn nhìn vào chất lượng hình ảnh (không phải ở độ phức tạp hình học) thì nó trông không ấn tượng lắm. Trong thực tế, nó trông khá bằng phẳng. Bóng được hiển thị có thể được đưa vào dữ liệu và không được đánh giá trong thời gian thực.

Tôi rất thích xem một bản demo với hình học hoạt hình và ánh sáng động.

  • Nếu điều này là có thật, tại sao cho đến nay vẫn chưa có ai nghĩ về nó?

Trừ khi tôi hoàn toàn sai (và đây không phải là lần đầu tiên tôi) câu trả lời đầu tiên của tôi sẽ đề xuất sử dụng công nghệ hiện có (có lẽ rất thông minh), có lẽ được tối ưu hóa và mở rộng để tạo bản demo này. Làm cho nó trở thành một công cụ trò chơi thực tế, với tất cả các nhiệm vụ khác ngoài việc hiển thị hình học tĩnh bao gồm, là một trò chơi bóng hoàn toàn khác.

Tất nhiên tất cả điều này là đầu cơ thuần túy (làm cho nó rất nhiều niềm vui với tôi). Tất cả những gì tôi nói là điều này không nhất thiết là giả (thực tế tôi không nghĩ nó vẫn còn ấn tượng), nhưng có lẽ không đột phá như chúng làm cho âm thanh của nó.


5

Những nguyên tử này thực sự không phải là ma thuật / đặc biệt / xa lạ với phần cứng đồ họa hiện tại. Nó chỉ là một loại kết xuất dựa trên đám mây điểm hoặc dựa trên voxel. Vì vậy, thay vì hình tam giác họ kết xuất điểm hoặc hộp, không có gì khó thực hiện với phần cứng hiện tại.

Nó đã và đang được thực hiện và không phải là siêu phát minh, nhưng có lẽ họ đã nghĩ ra một cách hiệu quả hơn về bộ nhớ và thời gian để thực hiện nó. Mặc dù có vẻ và âm thanh khá thú vị, bạn nên quay video này với một hạt muối. Kết xuất 100.000 điểm thay vì đa giác có kết cấu đầy đủ (chỉ chiếm một vài pixel trên màn hình) sẽ không làm cho chất lượng đồ họa của bạn tốt hơn với hệ số 100.000.

Và nhân tiện, tôi đã nghe nói phần mềm id cũng đang thử kết xuất voxel được tích hợp GPU, nhưng tôi có một chút tin tưởng vào John Carmack hơn là người nói về video này :)


2

Đó là một lừa đảo đầu tư.

Về ý tưởng, nó không khả thi trên phần cứng không chuyên dụng hiện tại. Lượng điểm bạn cần để tránh các khoảng trống khi nhìn vào thứ gì đó ở gần vượt xa số điểm bạn có thể sử dụng trong RAM ngày nay. Ngay cả khi, tôi không biết bất kỳ cấu trúc dữ liệu hoặc thuật toán tìm kiếm nào sẽ mang lại bất cứ điều gì gần hiệu suất được hiển thị trong bản demo. Và ngay cả khi , bằng cách nào đó có thể tìm kiếm các điểm này trong thời gian thực, lỗi bộ nhớ cache và băng thông bộ nhớ sẽ đảm bảo rằng bạn không thể.

Tôi không nghi ngờ rằng thực tế là những hình ảnh như vậy không thể đạt được trong thời gian thực, chỉ với phương pháp được trình bày. Tôi đoán là các bản demo được kết xuất bằng voxels, đã được sử dụng trong nhiều thập kỷ và có thể tạo ra chi tiết khá cao trong thời gian thực: http://www.youtube.com/watch?v=BKEfxM6girI http://www.youtube .com / đồng hồ? v = VpEpAFGplnI


2
"Đó là một trò lừa đảo đầu tư" ... bạn dựa vào điều gì? Đặc biệt là được cấp vốn gần đây và các video được tải lên ngày hôm nay?
Bart

1
Video gì? Họ đã không cập nhật trong hơn một năm.
Hannesh

1
youtube.com/user/EuclideonOfficial như được đăng bởi OP trong các bình luận.
Bart

1

Từ những gì tôi thấy, có vẻ như họ đang sử dụng các hình dạng tham số thay vì hình dạng đa giác đơn giản - nói cách khác, họ thay đổi hình học theo độ phân giải yêu cầu.

Điều này có thể được thực hiện bằng cách sử dụng các kỹ thuật như shader hình học & nhiễu perlin.

Một khả năng khác là sử dụng GPGPU (ví dụ CUDA) để hiển thị cảnh bao gồm cả đa giác và để thực hiện dò tia (đối với thứ tự z và bóng). Một khả năng khác là một phần cứng tùy chỉnh hiển thị công thức thay vì hình tam giác


0

Tôi nghĩ về tất cả các yêu sách của họ, việc nén bộ nhớ có vẻ như là một sự cường điệu, tôi có thể hiểu điều gì đó như nén RLE có tác động lớn. Cuối cùng, tôi nghĩ rằng hệ thống này sẽ có rất nhiều "ưu điểm", nhưng rất nhiều "khuyết điểm", giống như chiếu tia, hoặc hiển thị bề mặt iso với các hình khối diễu hành.

Theo như kết xuất 'hàng nghìn tỷ' nguyên tử; Tôi không nghĩ họ đang nói vậy. Thay vào đó, những gì họ đang làm là tìm kiếm các nguyên tử W * H, tức là một nguyên tử trên mỗi pixel trên màn hình. Điều này có thể được thực hiện bằng nhiều cách khó khăn chậm. Một số cách để tăng tốc độ này là Cây KD và Cây BSP, Octrees, v.v ... Cuối cùng, có rất nhiều dữ liệu được sắp xếp thông qua, và thực tế là bản demo của chúng rõ ràng sắp xếp các nguyên tử 1440x720, sau đó mỗi lần một khung, bởi vì bóng / phản chiếu trong bản demo của họ, thật tuyệt vời. Vậy nên!


-1

Cách thức hoạt động đơn giản hơn nhiều so với bạn nghĩ, thay vì tải trước, hãy nói một cấp độ trò chơi, nó chỉ tải một màn hình, một hoặc một vài nguyên tử trên mỗi pixel trên màn hình của bạn, không có gì khác, trò chơi / công cụ sau đó dự đoán những gì các khung tiếp theo là và đó là thứ duy nhất được tải, chỉ một phần của đối tượng hiển thị được hiển thị, chứ không phải toàn bộ chính đối tượng. PROS: càng nhiều định nghĩa và độ phân giải màn hình của bạn có thể xử lý, sử dụng bộ nhớ thấp TIÊU DÙNG: tốc độ đọc từ đĩa khá lớn và có thể dẫn đến tốc độ khung hình thấp.


điều này dường như không cung cấp bất cứ điều gì đáng kể qua các điểm được thực hiện và giải thích trong 7 câu trả lời trước
gnat
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.