«shader» 태그된 질문

쉐이더와 관련된 모든 질문, 즉 GPU 파이프 라인의 프로그래밍 가능한 부분. 언어 별 셰이더 질문은 [glsl] 및 [hlsl] 태그도 참조하세요.

1
프래그먼트 셰이더에서이 조건이 왜 이렇게 느립니까?
WebGL에서 FPS 측정 코드를 설정하고 ( 이 SO answer 기반 ) 프래그먼트 셰이더의 성능과 약간의 차이점을 발견했습니다. 이 코드는 1024x1024 캔버스에 단일 쿼드 (또는 오히려 두 개의 삼각형)를 렌더링하므로 조각 매직에서 모든 마법이 발생합니다. 이 간단한 셰이더 (GLSL; 정점 셰이더는 단지 통과)를 고려하십시오. // some definitions void main() { float …

1
일정한 조건이 셰이더 전환보다 비용이 많이 듭니까?
일반적으로 셰이더에서 분기하는 것은 좋은 생각이 아닙니다. 그러나 이제는 전체 그리기 호출과 관련하여 일정한 조건을 가진 쉐이더가 있습니다. 따라서 실행되는 분기는 하나의 드로우 콜에 대해 항상 동일합니다. 이러한 브랜치 유형이 브랜치가없는 다중 셰이더를 사용하는 것보다 비용이 많이 듭니까?


2
미분 맵 대 탄젠트 스페이스 노멀 맵
일부 엔진 은 탄젠트 공간 노멀 맵 대신 파생 맵을 사용한다는 것을 발견했습니다 . 약간의 독서 후에, 탄젠트 공간 법선을 대체하는 정말 멋진 방법 인 것 같지만 사용하는 데 약간의 단점이 있습니까? 왜 여전히 탄젠트 공간 법선을 계속 사용합니까? 장점과 단점을 모두 비교할 수 있습니까?

1
셰이더의 루프 성능
동적 루프 함수를 셰이더에 통합하는 가장 좋은 방법이 무엇인지 궁금합니다. 첫째, 동적 배열이 불가능한 것 같습니다. 따라서 최대 크기 배열을 만들고 그 일부만 채우거나 사전 정의 된 크기로 배열을 정의하는 것이 더 낫습니까? 그렇다면이 배열을 반복하는 가장 좋은 방법은 무엇입니까? 4 ~ 128 회 반복을 위해 롤링되지 않은 루프 나 …

1
셰이더 프로그램을 변경할 때 유니폼이나 속성을 리 바인드해야합니까?
장면 렌더링에는 일반적으로 둘 이상의 쉐이더 프로그램이 필요합니다. 필자의 경우 모두 동일한 속성을 사용하고 적어도 일부 유니폼을 공유합니다. 그것들이 제대로 작동하게하기 위해, 나는 현재 안전하게 플레이합니다. 즉, 셰이더 프로그램간에 전환 할 때마다 속성을 리 바인드하고 적절한 균일 한 위치를 얻습니다. 따라서 기본적으로 모든 프레임에서 여러 번이 방법이 최선의 방법은 아닙니다. …
11 opengl  glsl  shader 



1
많은 광원으로 효율적인 렌더링
퐁 쉐이딩을 사용하여 단일 광원으로 장면을 렌더링하기 위해 머티리얼과 광원의 주변 / 확산 / 반사 성분을 기반으로 프래그먼트 쉐이더에 전달 된 각 프래그먼트의 최종 색상을 계산할 수 있습니다. 각 개별 광원을 조각에 적용한 결과를 함께 추가하여 여러 광원을 수용 할 수 있도록 쉽게 확장 할 수 있습니다. final_color = (0, …


1
GGX 기하학 용어의 올바른 형식
raytracer에서 microfacet BRDF를 구현하려고하는데 몇 가지 문제가 있습니다. 내가 읽은 많은 논문과 기사는 부분 기하 항을 뷰와 반 벡터의 함수로 정의합니다 : G1 (v, h). 그러나 이것을 구현하면 다음과 같은 결과를 얻었습니다. (맨 아래 줄은 거칠기 1.0-0.0의 유전체이며, 맨 위 줄은 거칠기 1.0-0.0의 금속입니다) 가장자리 주위에 이상한 하이라이트가 있고 nl …

1
OpenGL 테셀레이션에서 정점 당 계산
하드웨어 테셀레이션을 사용하여 위치 기반 천 시뮬레이션을 구현하려고합니다. 즉, 컨트롤 쿼드를 그래픽 카드에 업로드 한 다음 테셀레이션 및 지오메트리 음영을 사용하여 클로 쓰에 노드를 만들고 싶습니다. 이 아이디어는 논문을 따릅니다. Huynh, David, "하드웨어 테셀레이션을 사용한 천체 시뮬레이션"(2011). 명제. 로체스터 공과 대학 http://scholarworks.rit.edu/theses/265/ 테셀레이션을 사용하여 시뮬레이션 포인트를 만드는 방법을 알고 있습니다. …

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