OpenGL에서 "제로 상태"렌더링이란 무엇입니까?


10

최근 면접에서 필자는 대학에서 당시 즉시 모드 렌더링으로 고정 함수 파이프 라인 만 가르쳤 기 때문에 현대 OpenGL과 버텍스 버퍼 객체로 렌더링하는 법을 스스로 언급했다고 언급했다. 면접관은 VBO가 효과적으로 "제로 상태 렌더링"으로 대체되었다고 말하면서 잠시 중단했습니다.

우리는 다른 주제로 빠르게 옮겨 갔고 인터뷰 일정이 바빠서 결국 시간이 부족했기 때문에 그 의미에 대해 나중에 묻는 것을 잊었습니다.

나중에 온라인에서 "OpenGL zero state"와 "zero state rendering"을 검색했는데 관련성이없는 것으로 보이는 결과는 없었으며 대부분 OpenGL 상태에 관한 것입니다.

문제의 조직은 매우 연구에 기반을두고 있기 때문에 현재 지원이 거의없는 확장 프로그램이거나 최첨단 특성으로 인해 사용되는 용어가 다를 가능성이 있습니까?


"제로 상태"인지, 아니면 "제로"라는 단어가있는 다른 것이 었습니까? 내 생각에 그는 제로 오버 헤드에 대해 이야기하고 있다고 생각합니다 : gdcvault.com/play/1020791
Lasse

그의 실제 단어가 '제로 상태 (zero state)'라고 100 % 확신하지만, 비디오를 훑어 보면 '제로 듣지 않을'가능성이 높습니다. 내 가정은 그가 이미 사용 가능한 것을 최적화하는 것과는 대조적으로, 드로우 콜에 사용되는 새로운 기능 하나를 언급하고 있다고 가정했습니다. '제로 오버 헤드 없음'이 OpenGL에서 물건을 그리는 새로운 권장 방법입니까?
usm

6
"제로 속성"일 수 있습니까? 속성없는 렌더링 (일반적으로 "속성없는 렌더링"이라고 함) VBO를 대체합니다.
트레버 파월

5
이 질문은 주제를 벗어난 것이 아니며 용어 질문은 절대적으로 허용됩니다.

1
면접관이 말한 내용이 Bindless Rendering이라고하는 것이 더 일반적이라고 확신합니다. 즉, 개별 객체를 변경하거나 활용하기 위해 개별 객체를 전역 핸들에 바인딩 할 필요가 없습니다. 더 나은 결과를 검색해야합니다.
kevintodisco

답변:


9

귀하의 면접관은 자신의 말로 바인드리스 API 에 대해 이야기했습니다 . 엔비디아 (NVidia)는 최근에 직접 상태 접근 ( 1 , 2 ) 이라고하는 모든 것에 대해 멋진 프레젠테이션을했습니다 . 이것은 VBO를 대체하지 않습니다.


편집 : 실제로 Trevor Powell의 제안을 고려해 보겠습니다.

이것은 일부 사람들 이이 기사 에서 언급 한 것처럼 균일 한 데이터 또는 텍스처를 가져 오는 지오메트리 셰이더를 사용하여 속성이없는 렌더링을 위해 VBO를 드롭하기로 결정할 수있는 것처럼 보입니다 .

나는 누군가가 attirubte없는 완전한 하나의 엔진을 전환하기로 결정 수있는 방법을 볼 수 있습니다,하지만 난 팀에 있었다면 나는 그런 행동을 묵과하지 않을 : 당신이 읽은 경우 이유 - 파이프 라인의 개요를 attribute-와 것을주의 깊게이다 덜, 버텍스 FIFO 캐시는 모두 건너 뛰기 때문에 사용할 수 없게됩니다. 따라서 속성이 적으므로 훌륭한 최적화 기회가 제거됩니다.

이것은 물론 벤치마킹이 필요하지만 순수하게 선험적이며 일반적인 범용 솔루션에 대한 나쁜 생각처럼 들립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.