다각형 대신 수조 개의“원자”를 렌더링하십니까?


9

방금 게시자가 "3D 발명 후 다음 주요 단계"라고 부르는 것에 대한 비디오 를 보았습니다 . 그것에 대해 말한 사람에 따르면, 그들은 다각형 대신 구름으로 그룹화 된 엄청난 양의 원자 를 사용하여 무한한 세부 수준에 도달합니다 .

그들은 렌더링 기술에 대한 지식이없는 사람이 비디오를 이해할 수 있도록 최선을 다했으며, 따라서 엔진 작동 방식에 대한 모든 세부 사항을 생략했습니다.

그들의 비디오의 세부 수준은 나에게 매우 인상적입니다.

  • 현재 하드웨어에서 다각형 대신 사용자 지정 원자를 사용하여 장면을 렌더링하는 방법은 무엇입니까? (속도, 메모리 단위)
  • 이것이 사실이라면, 왜 지금까지 아무도 그것에 대해 생각하지 않았습니까?

저는 OpenGL 개발자로서 이것에 대해 당황스럽게 생각하며 전문가들의 의견을 듣고 싶습니다. 따라서 나는 이것이 싼 광고처럼 보이기를 원하지 않으며 주석 섹션에 요청이있는 경우에만 비디오 링크를 포함시킵니다.


7
글쎄, 그들은 컴퓨터 그래픽이 시작된 이래 가장 혁신적인 것을 발명했지만 1 인치에 몇 밀리미터가 맞는지 모릅니다.

2
기술에 대한 세부 사항이 너무 제한되어 있기 때문에 토론이 어렵습니다. 내가 비디오에서 이해하는 것에서 그것은 소프트웨어에서 20fps입니다. 나는 많은 정적 지오메트리, 전체 인스턴스화를 보았고 얼마나 많은 데이터가 사전 계산되거나 생성되는지 모릅니다. 그래도 여전히 흥미 롭습니다. 나는 shenanigans를 완전히 부르고 싶지 않습니다. 인수 한 자금이 아니더라도 그다지 많은 것은 아닙니다.
Bart

8
누군가 환상적인 주장을하고 완전히 관련이없는 것 (예 : 크라이시스)의 영상 만 보여 주면 항상 의심 스럽다. "의학 / 우주 여행에 사용되는 기술"과 같은 주장이 있고 서로 관련이없는 여러 가지 사항을 혼합하는 경우 더욱 그렇습니다. 확실히 절차 적으로 (거의) 무한한 디테일을 생성하는 것이 가능하며이를 렌더링하는 것이 가능합니다. 1984 년 만델 브로트 데모는 무엇을 할 수 있을까요? 그러나 그 주장은 코끼리와 같은 물체를 무한히 자세하게 렌더링한다는 것입니다. 그들이 할 수 없기 때문에 그것은 단지 볼록입니다.

8
"그래픽이 10 만 배 향상 될 것입니다." 특별한 주장에는 특별한 증거가 필요합니다.
브래드 라슨

답변:


11

그렇게하기 쉽습니다. Octtree를 사용하면 필요한 세부 수준에 도달 할 때까지 단순히 세상을 점차 작은 조각으로 나눕니다. 예를 들어 이것은 모래 알갱이의 크기 일 수 있습니다. 마인 크래프트가 극단으로 올라 갔다고 생각하십시오.

그러면 무엇을 렌더링합니까? 디테일이 충분히 작 으면 옥트 트리의 리프 노드 인 렌더링 블록을 고려할 수 있습니다. 다른 옵션으로는 구 또는 기하 기본형이 있습니다. 각 노드에 색상과 법선을 저장할 수 있으며 LOD를 줄이려면 합성 정보를 더 높은 수준의 트리에 저장할 수 있습니다.

많은 양의 데이터를 어떻게 관리 할 수 ​​있습니까? 트리가 실제 데이터 구조 인 경우 텍스처 재사용과 같이 여러 개의 포인터가 동일한 하위 트리를 참조하도록 할 수 있지만 지오메트리도 포함됩니다. 비결은 모든 수준에서 가능한 한 많은 재사용을 얻는 것입니다. 예를 들어, 사면체 배열의 4 개의 옥탄트를 모든 레벨에서 동일한 자식 노드에 모두 연결하면 메모리를 거의 사용하지 않고 매우 큰 3D sierpinsky 프랙탈을 만들 수 있습니다. 실제 장면은 물론 훨씬 더 클 것입니다.

문제는 실제 애니메이션은 매 프레임마다 모든 데이터를 조작해야하기 때문에 정적 지오메트리에서만 작동한다는 것입니다. 그러나 특히 가변 LOD를 사용한 렌더링은 문제가되지 않습니다.

그런 것을 어떻게 렌더링합니까? 저는 레이트 레이싱 팬이며 GPU를 사용하거나 사용하지 않고 이러한 유형의 작업을 처리합니다.

이 모든 것은 물론 추측입니다. 당신이 말하는 사건에 대한 구체적인 정보가 없습니다. 그리고 지금 관련이 있지만 다른 것이 있습니다.

엄청난 양의 데이터 렌더링

편집 여기에 내가 한 것이 있지만, 상자를 더 분명하게 보이도록 의도적으로 법선을 변경했습니다.

복셀에있는 스탠포드 토끼

이 프레임 속도는 단일 코어 IIRC에있었습니다. 트리의 깊이를 두 배로 늘리면 일반적으로 프레임 속도가 절반으로 줄어드는 반면 여러 코어를 사용하면 확장 성이 좋습니다. 일반적으로 나는 옥트 트리에 프리미티브 (삼각형 등)를 유지하지만,이 경우에는 트리 자체의 리프 노드를 렌더링하기로 결정했습니다. 특정 방법을 중심으로 최적화하면 더 나은 성능을 얻을 수 있습니다.

ompf의 어딘가에는 정사각형을 제외하고는 정말 환상적인 복셀 차량이 있습니다. 지금 찾을 수없는 것 같습니다 ...


나는이 평가에 동의한다 : 방금 비디오를 직접보고 장면이 정적 인 방식에 충격을 받았다.
timday

1
불행히도 링크는 죽었습니다.
Joachim Sauer

1
@JoachimSauer 사실, OMPF 포럼은 얼마 전에 중단되었습니다. 직접 교체 가 가능 하지만 콘텐츠가 마이그레이션되었는지 여부를 알 수 없습니다.
Bart

그렇게 보이지 않습니다. 해당 포럼에서 "토끼"를 검색하면 결과가 없습니다.
Joachim Sauer

첫 번째 링크가 팝업 및 경고 상자를 엽니 다 -1
NimChimpsky

6
  • 현재 하드웨어에서 다각형 대신 사용자 지정 원자를 사용하여 장면을 렌더링하는 방법은 무엇입니까? (속도, 메모리 단위)

비디오를 보았을 때 특별한 하드웨어가 사용되었음을 나타내는 것은 없습니다. 사실, 내가 놓친 것이 없다면 소프트웨어에서 20fps로 실행된다고 명시되어 있습니다.

레이트 레이싱, 복셀 렌더링 및 표면 스플래 팅과 같은 다양한 기술을 사용하여 실시간 렌더링에 대한 많은 개발이 있었음을 알고 놀랄 것입니다. 이 경우에 사용 된 내용을 말하기는 어렵습니다. (관심이 있으시면 http://igad2.nhtv.nl/ompf2/ 에서 멋진 실시간 레이 트레이싱 포럼을 보거나 http://www.atomontage.com/ 에서 재미있는 복셀 엔진을 찾으십시오 . 해당 주제에 대한 훌륭한 링크를위한 Google "표면 스플래 팅"

영화를 보면 모든 지오메트리가 정적이고 상세하지만, 객체 반복이 많으므로 인스턴스화에 도움이 될 수 있습니다.

그리고 대부분의 공격적인 컬링, 세부 수준 및 공간 분할이 진행될 것입니다.

시각적 복잡성 (기하학적 복잡성이 아님)을 보면 그다지 인상적이지 않습니다. 실제로 상당히 평평 해 보입니다. 표시된 섀도 잉은 데이터에 구워 져 실시간으로 평가되지 않을 수 있습니다.

애니메이션 지오메트리와 동적 조명이 포함 된 데모를보고 싶습니다.

  • 이것이 사실이라면, 왜 지금까지 아무도 그것에 대해 생각하지 않았습니까?

내가 완전히 틀리지 않는 한 (그리고 내가 처음 인 것은 아니다) 나의 첫 번째 대답은 기존 기술의 (아마도 매우 영리한) 사용을 제안 할 것이다. 아마도이 데모를 만들기 위해 최적화되고 확장되었을 것이다. 그러나 정적 지오메트리를 렌더링하는 것 외에 다른 모든 작업을 포함하여 실제 게임 엔진으로 만드는 것은 완전히 다른 볼 게임입니다.

물론이 모든 것은 순수한 추측입니다 (나에게 많은 즐거움을줍니다). 내가 말하는 것은 이것이 가짜 일 필요는 없지만 (실제로 나는 그것이 그렇게 생각하지 않고 여전히 인상적이라고 생각하지는 않지만) 그들이 소리를내는 것처럼 획기적인 것은 아닐 것입니다.


5

이 원자들은 실제로 현재 그래픽 하드웨어에 마법 / 특별 / 외계인이 아닙니다. 일종의 포인트 클라우드 또는 복셀 기반 렌더링입니다. 따라서 삼각형 대신 점이나 상자를 렌더링하므로 현재 하드웨어로는 불가능합니다.

그것은 이미 이루어졌으며 이미 이루어졌으며 슈퍼 발명은 아니지만 더 많은 메모리와 시간 효율적인 방법을 생각해 냈습니다. 외형과 소리는 상당히 흥미롭지 만이 비디오를 소금 한 덩어리로 가져 가야합니다. 완전히 텍스처링 된 폴리곤 대신 100,000 포인트를 렌더링하면 (화면에서 이미 몇 픽셀 만 차지함) 10 만 배의 그래픽 품질이 향상되지는 않습니다.

그리고 ID 소프트웨어가 GPU 가속 복셀 렌더링을 시도하고 있다고 들었지만이 비디오의 스피커보다 John Carmack에 대한 신뢰가 조금 더 있습니다. :)


2

투자 사기였습니다.

아이디어에 관해서는, 현재의 비 전용 하드웨어에서는 실현 될 수 없습니다. 가까이서 무언가를 볼 때 틈새를 피하는 데 필요한 포인트의 양은 오늘날의 RAM에서 발생할 수있는 포인트의 수를 훨씬 초과합니다. 그럼에도 불구하고 데모에 표시된 성능 근처에 어떤 데이터 구조 또는 검색 알고리즘이 있는지 알 수 없습니다. 그리고 경우에도 이 실시간으로 이러한 점을 검색 할 어떻게 든 가능했던, 캐시 누락 및 메모리 대역폭은 당신이 할 수없는 것을 보장한다.

나는 제시된 방법이 아니라 실시간으로 그러한 이미지를 얻을 수 없다는 사실을 의심하지 않습니다. 내 생각에 데모는 수십 년 동안 사용되어 이미 실시간으로 상당히 높은 세부 사항을 생성 할 수있는 복셀로 렌더링 된 것입니다. http://www.youtube.com/watch?v=BKEfxM6girI http://www.youtube .com / watch? v = VpEpAFGplnI


2
"그건 투자 사기 였어"... 당신은 그것을 기반으로 무엇입니까? 특히 최근에 얻은 자금과 오늘 업로드되는 비디오를 고려할 때?
Bart

1
어떤 비디오? 그들은 일년 이상 업데이트되지 않았습니다.
Hannesh

1
의견에 OP가 게시 한 youtube.com/user/EuclideonOfficial
Bart

1

내가 본 것에서 간단한 다각형 모양 대신 파라 메트릭 모양을 사용하는 것 같습니다. 즉, 필요한 해상도에 따라 형상을 변경합니다.

지오메트리 쉐이더 및 펄린 노이즈와 같은 기술을 사용하여 수행 할 수 있습니다.

또 다른 가능성은 GPGPU (예 : CUDA)를 사용하여 비 폴리곤을 포함한 장면을 렌더링하고 광선 추적 (z 순서 및 그림자)을 수행하는 것입니다. 또 다른 가능성은 삼각형 대신 수식을 렌더링하는 사용자 지정 하드웨어입니다.


0

나는 모든 주장을 생각하고 메모리 압축은 과장된 것처럼 보이며 RLE 압축과 같은 것을 큰 영향을 미칩니다. 결국이 시스템에는 많은 "프로"가 있지만 광선 추적이나 행진 큐브를 사용한 iso- 표면 렌더링과 같은 많은 "콘"이 있다고 생각합니다.

원자의 '조'를 만드는 한; 나는 그들이 그렇게 말하고 있다고 생각하지 않습니다. 그들이 대신하는 것은 W * H 원자, 즉 화면에서 픽셀 당 하나의 원자를 검색하는 것입니다. 이것은 느리고 어려운 많은 방법으로 달성 될 수 있습니다. 이 속도를 높이는 몇 가지 방법은 KD 트리, BSP 트리, 옥트리 등입니다. 결국 많은 데이터가 정렬되어 있으며 데모는 프레임 당 한 번 이상 1440x720 원자를 정렬한다는 사실이 분명합니다. 데모의 그림자 / 반사 때문에 놀랍습니다. 그래서 cudos!


-1

작동 방식은 훨씬 간단합니다. 게임 레벨을 미리로드하는 대신 단일 화면, 화면의 픽셀 당 하나 또는 몇 개의 원자 만로드합니다. 게임 / 엔진은 다음 프레임은로드 된 유일한 프레임이므로 전체 오브젝트 자체가 아닌 보이는 오브젝트의 일부만 렌더링됩니다. 장점 : 모니터가 처리 할 수있는 많은 정의와 해상도, 낮은 메모리 사용량 단점 : 디스크의 읽기 속도가 상당히 커서 프레임 속도가 느려질 수 있습니다.


이것은 이전의 7 가지 답변에서 제시되고 설명 된 포인트를 넘어서는 실질적인 것을 제공하지 않는 것 같습니다
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.