«glsl» 태그된 질문

GLSL은 OpenGL 셰이딩 언어입니다. 이 언어로 작성된 셰이더에 관한 질문에이 태그를 사용하십시오. 일반적인 쉐이더 질문의 경우 대신 [shader]를 사용하십시오.

6
GLSL 쉐이더를 어떻게 디버깅 할 수 있습니까?
사소한 셰이더를 작성할 때 (사소한 다른 코드를 작성할 때와 마찬가지로) 사람들은 실수를합니다. [citation needed] 그러나 다른 코드와 마찬가지로 디버깅 할 수는 없습니다. gdb 또는 Visual Studio 디버거를 연결할 수는 없습니다. 콘솔 출력 형식이 없으므로 printf 디버깅을 수행 할 수도 없습니다. 내가 일반적으로하는 일은 색상으로보고 싶은 데이터를 렌더링하는 것이지만 매우 초보적이고 …
45 opengl  glsl  debugging 

4
여러 GLSL 셰이더간에 코드 공유
여러 셰이더간에 복사 붙여 넣기 코드를 자주 사용합니다. 여기에는 단일 계산에서 모든 셰이더간에 공유되는 특정 계산 또는 데이터와 모든 정점 셰이더에 필요한 공통 계산 (또는 다른 단계)이 포함됩니다. 물론, 그것은 끔찍한 관행입니다. 어디서나 코드를 변경 해야하는 경우 다른 곳에서 코드를 변경해야합니다. DRY 를 유지하기 위해 허용되는 모범 사례가 있습니까? 사람들이 …
30 glsl 

1
왜 Perlin Noise가“차단”처럼 보입니까?
나는 펄린 노이즈 구현하려고 혼자 (flafla2.github.io/2014/08/09/perlinnoise.html 다음) 단지 이론을 사용합니다. 불행히도 "원래"Perlin Noise의 모양을 얻을 수 없었습니다. 아래 코드가 Perlin Noise의 블록 버전을 렌더링하는 이유는 무엇입니까? 아티팩트없이 Perlin Noise를 렌더링하려면 코드를 어떻게 개선 / 변경해야합니까? 보간 또는 grads벡터에 문제가있을 수 있습니다 . 이 grads벡터에는 근처의 격자 점 4 개에 대한 …
21 glsl  noise  artifacts 

1
PBR 구현과 혼동
나는 훌륭한 수학 세계를 발견하고 있으며 PBR과 이름으로 거대한 벽에 부딪 치면서 몇 가지 질문이 있습니다. 그러나 "Cook-Torrance"에서는 반사에 대해 아무것도 보지 못합니다. 반사를 통합하는 방법을 이해하지 못하므로 확산 된 빛과 반사 만 얻습니다. 나는 "Oren-Nayar"와 같은 다른 "확산 용어"에 대해 많이 읽었습니다. DFG 후보에서 다른 "D"와 같은 Cook-Torrance의 일부입니까? …
13 glsl  pbr 

1
원근감 올바른 보간을 비활성화하는 시점 (noperspective)
GLSL에서 정점 속성의 원근법 올바른 보간이 기본 설정 입니다. noperspective 한정자 를 사용하여 특정 정점 속성에 대해이를 비활성화 할 수 있습니다 . 사후 처리 셰이더를 제외하고는 원근법 올바른 보간이 비활성화 된 것을 본 적이 없습니다. 다른 사용 사례가 있습니까? 또한 성능 측면에서도 차이가 있습니까?

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

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

1
프래그먼트 셰이더에서 텍스처 좌표를 계산할 때 텍스처에 액세스하는 것이 왜 더 느린가요?
GLSL에서 텍스처를 사용할 때는 꼭짓점 셰이더에서 최종 텍스처 좌표를 계산하고 varyings를 사용하여 프래그먼트 쉐이더로 넘겨주는 것이 가장 좋습니다 . y 좌표를 간단히 뒤집는 예 : // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, 1.0-texture.y); // ... } // Fragment shader …

1
WebGL 전 방향 그림자 매핑 문제
우선, 깊이 맵과 큐브 맵을 사용하여 그림자 매핑에 대한 많은 게시물을 읽었으며 작동 방식을 이해하고 OpenGL을 사용하여 작업 경험을 가지고 있지만 구현에 문제가 있다고 말하고 싶습니다. "EZ3"라는 내 3D 그래픽 엔진에서 단일 포인트 광원을 사용하는 전 방향 그림자 매핑 기술. 내 엔진은 WebGL을 3D 그래픽 API로 사용하고 JavaScript는 프로그래밍 언어로 …

1
Microfacet BRDF를 구현하려고하는데 결과 이미지가 잘못되었습니다
microfacet BRDF 모델을 구현하려고합니다. Sebastien Lagarde의 슬라이드를 읽고 있습니다 . 코드에 수식을 구현했지만 결과 이미지가 잘못되었다고 생각합니다. 노란색은 재료의 기본 색상입니다. 정반사 색상이 제대로 표시되도록 빨간색입니다. 내 코드 : // Fragment Shader #version 330 core in vec3 Position; in vec2 TexCoord0; in vec3 Normal; in vec3 Tangent; out vec4 FinalColor; …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.