Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

내장 함수

Godot는 대략 GLSL ES 3.0 사양을 준수하는 다수의 내장 기능을 지원합니다.

참고

다음 유형 별칭은 반복적인 함수 선언을 줄이기 위해 문서에서만 사용됩니다. 이들은 각각 여러 실제 유형 중 하나를 참조할 수 있습니다.

정면 뷰

명명된 타입

문서 변경 내역

타입

부동 소수점, vec2, vec3 또는 vec4

타입

타입

int, ivec2, ivec3 또는 ivec4

타입

vec_uint_type

단위, uvec2, uvec3 또는 uvec4

타입

vec_bool_type

부울, bvec2, bvec3 또는 bvec4

타입

타입

mat2, mat3, 또는 mat4

match

gvec4_type

vec4, ivec4, 또는 uvec4

gvec4

예제

sampler2D, isampler2D, 또는 uSampler2D

예제

예제

sampler2DArray, isampler2DArray, 또는 uSampler2DArray

예제

예제

sampler3D, isampler3D, 또는 uSampler3D

예제

여러 매개변수에 이들 중 하나가 지정된 경우 달리 명시하지 않는 한 모두 동일한 유형이어야 합니다.

참고

하나 이상의 벡터 또는 행렬을 허용하는 많은 함수는 벡터/행렬의 각 구성요소에 대해 설명된 기능을 수행합니다. 몇 가지 예:

연산자

동등한 스칼라 연산

sqrt(vec2(4, 64))

vec2(sqrt(4), sqrt(64))

min(vec2(3, 4), 1)

vec2(min(3, 1), min(4, 1))

min(vec3(1, 2, 3),vec3(5, 1, 3))

vec3(min(1, 5), min(2, 1), min(3, 3))

pow(vec3(3, 8, 5 ), 2)

vec3(pow(3, 2), pow(8, 2), pow(5, 2))

pow(vec3(3, 8, 5), vec3(1, 2, 4))

vec3(pow(3, 1), pow(8, 2), pow(5, 4))

`GLSL 언어 사양 <http://www.opengl.org/registry/doc/GLSLangSpec.4.30.6.pdf>`_은 섹션 5.10 벡터 및 행렬 연산에서 다음과 같이 말합니다.

몇 가지 예외를 제외하고 작업은 구성 요소별로 이루어집니다. 일반적으로 연산자가 벡터나 행렬에 대해 연산을 수행할 때는 벡터나 행렬의 각 구성요소에 대해 구성요소별 방식으로 독립적으로 연산을 수행합니다. [...] 예외는 행렬 곱하기 벡터, 벡터 곱하기 행렬 및 행렬 곱하기입니다. 이는 구성 요소별로 작동하지 않고 올바른 선형 대수 곱셈을 수행합니다.

이러한 기능 설명은 원래 Khronos 그룹가 `Open Publication License <https://opencontent.org/openpub>`__에 따라 게시한 `공식 OpenGL 문서 <https://registry.khronos.org/OpenGL-Refpages/gl4/>`__에서 채택 및 수정되었습니다. 각 기능 설명은 해당 공식 OpenGL 문서로 연결됩니다. 이 페이지의 수정 내역은 `GitHub <https://github.com/godotengine/godot-docs/blob/master/tutorials/shaders/shader_reference/shader_functions.rst>`__에서 확인할 수 있습니다.


변형 기능들

반환

함수

설명/반환 값

벡터

radians(|vec_type|도)

탭으로 들여쓰도록 변환

벡터

degrees(vec_type 라디안)

공백으로 들여쓰도록 변환

벡터

sin(vec_type x)

Sine.

벡터

cos(vec_type x)

Cosine.

벡터

tan(vec_type x)

접선 확인

벡터

asin(vec_type x)

아크 사인.

벡터

acos(vec_type x)

아크 코사인.

벡터
벡터
atan(vec_type y_over_x)
atan(vec_type y, vec_type x)

접선 확인

벡터

sinh(vec_type x)

쌍곡선 사인.

벡터

cosh(vec_type x)

쌍곡선 코사인.

벡터

tanh(vec_type x)

쌍곡선 탄젠트.

벡터

asinh(vec_type x)

아크 쌍곡사인.

벡터

acosh(vec_type x)

아크 쌍곡선 코사인.

벡터

atanh(vec_type x)

호 쌍곡선 탄젠트.

설명

vec_type 라디안(|vec_type|도) 🔗

Component-wise Function.

degrees * (PI / 180) 공식을 사용하여 도 단위로 지정된 수량을 라디안으로 변환합니다.

매개변수:

라디안으로 변환할 양(도)입니다.

return:

탭으로 들여쓰도록 변환

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/radians.xhtml


vec_type (vec_type 라디안) 🔗

Component-wise Function.

radians * (180 / PI) 공식을 사용하여 라디안으로 지정된 양을 각도로 변환합니다.

매개변수 라디안:

각도로 변환할 수량(라디안)입니다.

return:

공백으로 들여쓰도록 변환

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/degrees.xhtml


vec_type (vec_type 각도) 🔗

Component-wise Function.

``angle``의 삼각 사인을 반환합니다.

매개변수 각도:

사인을 반환할 수량(라디안)입니다.

return:

``angle``의 사인입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/sin.xhtml


vec_type cos(vec_type 각도) 🔗

Component-wise Function.

``angle``의 삼각 코사인을 반환합니다.

매개변수 각도:

코사인을 반환할 라디안 단위의 수량입니다.

return:

파일의 절대 경로

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/cos.xhtml


vec_type 황갈색(vec_type 각도) 🔗

Component-wise Function.

``angle``의 삼각 탄젠트를 반환합니다.

매개변수 각도:

탄젠트를 반환할 라디안 단위의 수량입니다.

return:

파일의 절대 경로

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/tan.xhtml


vec_type 아신(vec_type x) 🔗

Component-wise Function.

아크사인 또는 역사인. 사인이 x``이고 범위 ``[-PI/2, PI/2]``에 있는 각도를 계산합니다. ``x < -1 또는 ``x > 1``인 경우 결과는 정의되지 않습니다.

매개변수 x:

반환할 아크사인의 값입니다.

return:

삼각 사인이 ``x``인 각도입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/asin.xhtml


vec_type acos(vec_type x) 🔗

Component-wise Function.

아크 코사인 또는 역코사인. 코사인이 x``이고 범위 ``[0, PI] 내에 있는 각도를 계산합니다.

x < -1 또는 ``x > 1``인 경우 결과는 정의되지 않습니다.

매개변수 x:

반환할 아크코사인의 값입니다.

return:

삼각 코사인이 ``x``인 각도입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/acos.xhtml


vec_type atan(vec_type y_over_x) 🔗

Component-wise Function.

탄젠트 값 ``y/x``를 기준으로 아크 탄젠트를 계산합니다.

참고

부호 모호성 때문에 함수는 탄젠트 값에 의해서만 각도가 어느 사분면에 속하는지 확실하게 결정할 수 없습니다. 사분면을 알고 싶다면 :ref:`atan(vec_type y, vec_type x)<shader_func_atan2>`를 사용하세요.

매개변수 y_over_x:

반환할 아크탄젠트의 분수입니다.

return:

y_over_x``의 삼각 아크탄젠트는 ``[-PI/2, PI/2] 범위에 있습니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/atan.xhtml


vec_type atan(vec_type y, vec_type x) 🔗

Component-wise Function.

분자와 분모가 주어지면 아크 탄젠트를 계산합니다. yx 기호는 각도가 있는 사분면을 결정하는 데 사용됩니다. ``x == 0``인 경우 결과는 정의되지 않습니다.

GDScript의 :ref:`atan2() <class_@GlobalScope_method_atan2>`와 동일합니다.

매개변수 y:

반환할 아크탄젠트의 분수의 분자입니다.

매개변수 x:

반환할 아크 탄젠트가 있는 분수의 분모입니다.

return:

y/x``의 삼각 아크탄젠트는 ``[-PI, PI] 범위에 있습니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/atan.xhtml


vec_type (vec_type x) 🔗

Component-wise Function.

``(e^x - e^-x)/2``를 사용하여 쌍곡사인을 계산합니다.

매개변수 x:

반환할 쌍곡선 사인의 값입니다.

return:

``x``의 쌍곡선 사인입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/sinh.xhtml


vec_type 코쉬(vec_type x) 🔗

Component-wise Function.

``(e^x + e^-x)/2``를 사용하여 쌍곡선 코사인을 계산합니다.

매개변수 x:

쌍곡선 코사인을 반환할 값입니다.

return:

``x``의 쌍곡선 코사인입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/cosh.xhtml


vec_type tanh(vec_type x) 🔗

Component-wise Function.

``sinh(x)/cosh(x)``를 사용하여 쌍곡선 탄젠트를 계산합니다.

매개변수 x:

반환할 쌍곡선 탄젠트의 값입니다.

return:

``x``의 쌍곡선 탄젠트입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/tanh.xhtml


vec_type asinh(vec_type x) 🔗

Component-wise Function.

``x``의 아크 쌍곡사인 또는 ``sinh``의 역을 계산합니다.

매개변수 x:

반환할 아크쌍곡선 사인의 값입니다.

return:

``x``의 아크 쌍곡선 사인입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/asinh.xhtml


vec_type acosh(vec_type x) 🔗

Component-wise Function.

``x``의 아크 쌍곡선 코사인 또는 ``cosh``의 음이 아닌 역을 계산합니다. ``x < 1``인 경우 결과는 정의되지 않습니다.

매개변수 x:

반환할 아크 쌍곡선 코사인의 값입니다.

return:

``x``의 아크 쌍곡선 코사인입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/acosh.xhtml


vec_type atanh(vec_type x) 🔗

Component-wise Function.

``x``의 아크 쌍곡선 탄젠트 또는 ``tanh``의 역수를 계산합니다. ``abs(x) > 1``인 경우 결과는 정의되지 않습니다.

매개변수 x:

반환할 아크 쌍곡선 탄젠트의 값입니다.

return:

``x``의 아크 쌍곡선 탄젠트입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/atanh.xhtml


지수형 깊이 안개.

반환

함수

설명/반환 값

벡터

pow(vec_type x, vec_type y)

전력(x < 0``인 경우 또는 ``x == 0``y <= 0``인 경우 정의되지 않음).

벡터

exp(vec_type x)

Base-e 지수.

벡터

exp2(vec_type x)

Base-2 지수.

벡터

log(vec_type x)

자연(밑 e) 로그.

벡터

log2(vec_type x)

밑이 2인 로그.

벡터

sqrt(vec_type x)

제곱근.

벡터

inversesqrt(vec_type x)

역제곱근.

벡터
vec_int_type
abs(vec_type x)
abs(vec_int_type x)

절대값(음수인 경우 양수 값 반환)

벡터

sign(vec_type x)

양수이면 ``1.0``를 반환하고, 음수이면 ``-1.0``를 반환하고, 그렇지 않으면 ``0.0``를 반환합니다.

vec_int_type

sign(vec_int_type x)

양수이면 ``1``를 반환하고, 음수이면 ``-1``를 반환하고, 그렇지 않으면 ``0``를 반환합니다.

벡터

floor(vec_type x)

아래의 정수로 반올림됩니다.

벡터

round(vec_type x)

가장 가까운 정수로 반올림합니다.

벡터

roundEven(vec_type x)

가장 가까운 짝수로 반올림합니다.

벡터

trunc(vec_type x)

함수

벡터

ceil(vec_type x)

빌드 커스터마이징하기

벡터

fract(vec_type x)

분수(x - floor(x) 반환)

벡터
벡터
mod(vec_type x, vec_type y)
mod(vec_type x, 부동 소수점 y)

곱하기 / 나누기 / 나머지

벡터

modf(vec_type x, 출력 vec_type i)

정수 부분으로 ``i``가 포함된 ``x``의 분수입니다.

벡터
벡터
vec_int_type
vec_int_type
vec_uint_type
vec_uint_type
min(vec_type a, vec_type b)
min(vec_type a, 부동 소수점 b)
min(vec_int_type a, vec_int_type b)
min(vec_int_type a, 정수 b)
min(vec_uint_type a, vec_uint_type b)
min(vec_uint_type a, 단위 b)

a``와 ``b 사이의 가장 낮은 값입니다.

벡터
벡터
vec_int_type
vec_int_type
vec_uint_type
vec_uint_type
max(vec_type a, vec_type b)
max(vec_type a, 부동 소수점 b)
max(vec_int_type a, vec_int_type b)
max(vec_int_type a, 정수 b)
max(vec_uint_type a, vec_uint_type b)
max(vec_uint_type a, 단위 b)

a``와 ``b 사이의 가장 높은 값입니다.

벡터
벡터
vec_int_type
vec_int_type
vec_uint_type
vec_uint_type
clamp(vec_type x, vec_type 최소, vec_type 최대)
clamp(vec_type x, 부동 최소, 부동 최대)
clamp(vec_int_type x, vec_int_type 최소, vec_int_type 최대)
clamp(vec_int_type x, 정수 최소, 정수 최대)
clamp(vec_uint_type x, vec_uint_type 최소, vec_uint_type 최대)
clamp(vec_uint_type x, 최소 단위, 최대 단위)

``min``와 ``max``(포함) 사이에 ``x``를 고정합니다.

벡터
벡터
벡터
mix(|vec_type|a, |vec_type|b, |vec_type|c)
mix(vec_type a, vec_type b, 플로트 c)
mix(|vec_type|a, |vec_type|b, |vec_bool_type|c)

a``와 ``b 사이를 ``c``로 선형 보간합니다.

벡터

fma(|vec_type|a, |vec_type|b, |vec_type|c)

융합 곱셈-덧셈 연산: (a * b + c)

벡터
벡터
step(vec_type a, vec_type b)
step(부동 a, vec_type b)

b < a ? 0.0 : 1.0

벡터
벡터
smoothstep(|vec_type|a, |vec_type|b, |vec_type|c)
smoothstep(부동 a, 부동 b, vec_type c)

Hermite는 a``와 ``b 사이를 ``c``로 보간합니다.

vec_bool_type

isnan(vec_type x)

스칼라 또는 벡터 구성요소가 ``NaN``인 경우 ``true``를 반환합니다.

vec_bool_type

isinf(vec_type x)

스칼라 또는 벡터 구성요소가 ``INF``인 경우 ``true``를 반환합니다.

vec_int_type

floatBitsToInt(vec_type x)

float``에서 ``int 비트 복사, 변환 없음.

vec_uint_type

floatBitsToUint(vec_type x)

float``에서 ``uint 비트 복사, 변환 없음.

벡터

intBitsToFloat(vec_int_type x)

int``에서 ``float 비트 복사, 변환 없음.

벡터

uintBitsToFloat(vec_uint_type x)

uint``에서 ``float 비트 복사, 변환 없음.

지수 및 수학 함수 설명

vec_type (vec_type x, vec_type y) 🔗

Component-wise Function.

``x``를 ``y``의 힘으로 올립니다.

x < 0``이거나 ``x == 0``y <= 0``인 경우 결과는 정의되지 않습니다.

매개변수 x:

``y``만큼 거듭제곱되는 값입니다.

매개변수 y:

숨겨진 동작은 활성화되지 않지만, 내보내집니다.

return:

x``의 값을 ``y 거듭제곱으로 늘렸습니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/pow.xhtml


vec_type 특급(vec_type x) 🔗

Component-wise Function.

``e``를 ``x``의 거듭제곱, 즉 자연 지수로 올립니다.

``pow(e, x)``와 동일합니다.

매개변수 x:

최종 결과물

return:

``x``의 자연 지수화입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/exp.xhtml


vec_type exp2(vec_type x) 🔗

Component-wise Function.

``2``를 ``x``의 힘으로 올립니다.

``pow(2.0, x)``와 동일합니다.

매개변수 x:

``2``가 상승할 파워의 값입니다.

return:

위쪽 화살표 키에 매핑된 ``move_up``입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/exp2.xhtml


vec_type 로그(vec_type x) 🔗

Component-wise Function.

``x``의 자연 로그, 즉 ``x == pow(e, y)``를 만족하는 값 ``y``를 반환합니다. ``x <= 0``인 경우 결과가 정의되지 않습니다.

매개변수 x:

자연 로그를 취하는 값입니다.

return:

``x``의 자연 로그입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/log.xhtml


vec_type log2(vec_type x) 🔗

Component-wise Function.

``x``의 밑이 2인 로그, 즉 ``x == pow(2, y)``를 만족하는 값 ``y``를 반환합니다. ``x <= 0``인 경우 결과가 정의되지 않습니다.

매개변수 x:

밑이 2인 로그를 취하는 값입니다.

return:

``x``의 밑이 2인 로그입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/log2.xhtml


vec_type sqrt(vec_type x) 🔗

Component-wise Function.

``x``의 제곱근을 반환합니다. ``x < 0``인 경우 결과가 정의되지 않습니다.

매개변수 x:

제곱근을 구할 값입니다.

return:

``x``의 제곱근입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/sqrt.xhtml


vec_type inversesqrt(vec_type x) 🔗

Component-wise Function.

x 또는 ``1.0 / sqrt(x)``의 제곱근의 역수를 반환합니다. ``x <= 0``인 경우 결과는 정의되지 않습니다.

매개변수 x:

제곱근의 역수를 취하는 값입니다.

return:

``x``의 제곱근의 역수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/inversesqrt.xhtml


vec_type 절대(vec_type x) 🔗

vec_int_type 절대(vec_int_type x) 🔗

Component-wise Function.

``x``의 절대값을 반환합니다. ``x``가 양수이면 ``x``를 반환하고, 그렇지 않으면 ``-1 * x``를 반환합니다.

매개변수 x:

절대값을 반환할 값입니다.

return:

``x``의 절대값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/abs.xhtml


vec_type 부호(vec_type x) 🔗

vec_int_type 부호(vec_int_type x) 🔗

Component-wise Function.

``x < 0``이면 ``-1``를, ``x == 0``이면 ``0``를, ``x > 0``이면 ``1``를 반환합니다.

매개변수 x:

부호를 추출할 값입니다.

return:

``x``의 표시입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/sign.xhtml


vec_type 바닥(vec_type x) 🔗

Component-wise Function.

``x``보다 작거나 같은 가장 가까운 정수와 동일한 값을 반환합니다.

매개변수 x:

최종 결과물

return:

``x``보다 작거나 같은 가장 가까운 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/floor.xhtml


vec_type 원형(vec_type x) 🔗

Component-wise Function.

``x``를 가장 가까운 정수로 반올림합니다.

참고

``0.5``의 소수 부분으로 값을 반올림하는 것은 구현에 따라 다릅니다. 여기에는 ``round(x)``가 ``x``의 모든 값에 대해 ``roundEven(x)``와 동일한 값을 반환할 가능성이 포함됩니다.

매개변수 x:

최종 결과물

return:

이 모드는:

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/round.xhtml


vec_type 반올림(vec_type x) 🔗

Component-wise Function.

x``를 가장 가까운 정수로 반올림합니다. ``0.5``의 소수 부분이 있는 값은 항상 가장 가까운 짝수로 반올림됩니다. 예를 들어, ``3.5``4.5``는 모두 ``4.0``로 반올림됩니다.

매개변수 x:

최종 결과물

return:

이 모드는:

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/roundEven.xhtml


vec_type 잘림(vec_type x) 🔗

Component-wise Function.

``x``를 자릅니다. 절대값이 ``x``의 절대값보다 크지 않은 ``x``에 가장 가까운 정수와 동일한 값을 반환합니다.

매개변수 x:

최종 결과물

return:

잘린 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/trunc.xhtml


vec_type (vec_type x) 🔗

Component-wise Function.

``x``보다 크거나 같은 가장 가까운 정수와 동일한 값을 반환합니다.

매개변수 x:

최종 결과물

return:

상한값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/ceil.xhtml


vec_type 분열(vec_type x) 🔗

Component-wise Function.

``x``의 소수 부분을 반환합니다.

이는 ``x - floor(x)``로 계산됩니다.

매개변수 x:

최종 결과물

return:

``x``의 분수 부분입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/fract.xhtml


vec_type mod(vec_type x, vec_type y) 🔗

vec_type mod(vec_type x, 부동 y) 🔗

Component-wise Function.

``x modulo y``의 값을 반환합니다. 이를 나머지라고도 합니다.

이는 ``x - y * floor(x/y)``로 계산됩니다.

매개변수 x:

최종 결과물

return:

``x modulo y``의 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/mod.xhtml


vec_type modf(vec_type x, 출력 vec_type i) 🔗

Component-wise Function.

부동 소수점 값 ``x``를 정수 부분과 소수 부분으로 분리합니다.

숫자의 소수 부분이 함수에서 반환됩니다. 정수 부분(부동 소수점 수량)은 출력 매개변수 ``i``에 반환됩니다.

매개변수 x:

최종 결과물

나는 매개변수 아웃:

``x``의 정수부분을 받는 변수입니다.

return:

파일의 절대 경로

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/modf.xhtml


vec_type (vec_type a, vec_type b) 🔗

vec_type (vec_type a, 부동 소수점 b) 🔗

vec_int_type (vec_int_type a, vec_int_type b) 🔗

vec_int_type (vec_int_type a, int b) 🔗

vec_uint_type (vec_uint_type a, vec_uint_type b) 🔗

vec_uint_type (vec_uint_type a, 단위 b) 🔗

Component-wise Function.

두 값 ab 중 최소값을 반환합니다.

``b < a``이면 ``b``를 반환하고, 그렇지 않으면 ``a``를 반환합니다.

매개변수 a:

최종 결과물

매개변수 b:

비교할 두 번째 값입니다.

return:

최소값.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/min.xhtml


vec_type 최대(vec_type a, vec_type b) 🔗

vec_type 최대(vec_type a, 부동 소수점 b) 🔗

vec_uint_type 최대(vec_uint_type a, vec_uint_type b) 🔗

vec_uint_type 최대(vec_uint_type a, 단위 b) 🔗

vec_int_type 최대(vec_int_type a, vec_int_type b) 🔗

vec_int_type 최대(vec_int_type a, int b) 🔗

Component-wise Function.

ab 두 값 중 최대값을 반환합니다.

``b > a``이면 ``b``를 반환하고, 그렇지 않으면 ``a``를 반환합니다.

매개변수 a:

최종 결과물

매개변수 b:

비교할 두 번째 값입니다.

return:

최대값.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/max.xhtml


vec_type clamp(vec_type x, vec_type minVal, vec_type maxVal) 🔗

vec_type 클램프(vec_type x, float minVal, float maxVal) 🔗

vec_int_type 클램프(vec_int_type x, vec_int_type minVal, vec_int_type maxVal) 🔗

vec_int_type 클램프(vec_int_type x, int minVal, int maxVal) 🔗

vec_uint_type 클램프(vec_uint_type x, vec_uint_type minVal, vec_uint_type maxVal) 🔗

vec_uint_type 클램프(vec_uint_type x, 단위 minVal, 단위 maxVal) 🔗

Component-wise Function.

minVal``~``maxVal 범위로 제한된 ``x``의 값을 반환합니다.

반환된 값은 ``min(max(x, minVal), maxVal)``로 계산됩니다.

매개변수 x:

최종 결과물

매개변수 minVal:

``x``를 제한할 범위의 하한입니다.

매개변수 maxVal:

``x``를 제한할 범위의 상한입니다.

return:

고정된 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/clamp.xhtml


vec_type 믹스(vec_type a, vec_type b, vec_type c) 🔗

vec_type 믹스(vec_type a, vec_type b, 플로트 c) 🔗

Component-wise Function.

a``와 ``b 사이에 선형 보간을 수행하여 c 사이에 가중치를 부여합니다.

``a * (1 - c) + b * c``로 계산됩니다.

GDScript의 :ref:`lerp() <class_@GlobalScope_method_lerp>`와 동일합니다.

매개변수 a:

보간할 범위의 시작입니다.

매개변수 b:

보간할 범위의 끝입니다.

매개변수 c:

내보내기에서 버퍼 섀도우(buffer shadow)와 레이 섀도우(ray shadow)간의 차이는 없습니다.

return:

보간법 (Interpolation)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/mix.xhtml


vec_type 믹스(vec_type a, vec_type b, vec_bool_type c) 🔗

c 값을 기준으로 a 값 또는 b 값을 선택합니다. 거짓인 c 구성 요소의 경우 해당 a 구성 요소가 반환됩니다. true인 c 구성 요소의 경우 해당 b 구성 요소가 반환됩니다. 선택되지 않은 a``b``의 구성 요소는 잘못된 부동 소수점 값이 될 수 있으며 결과에 영향을 주지 않습니다.

a, b``c``가 벡터 유형인 경우 작업은 :ref:`comComponent-wise <shading_comComponentwise>`로 수행됩니다. 즉. ``mix(vec2(42, 314), vec2(9.8, 6e23), bvec2(true, false)))``는 ``vec2(9.8, 314)``를 반환합니다.

매개변수 a:

``c``가 false인 경우 반환되는 값입니다.

매개변수 b:

``c``가 true인 경우 반환되는 값입니다.

매개변수 c:

내보내기에서 버퍼 섀도우(buffer shadow)와 레이 섀도우(ray shadow)간의 차이는 없습니다.

return:

보간법 (Interpolation)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/mix.xhtml


vec_type fma(vec_type a, vec_type b, vec_type c) 🔗

Component-wise Function.

가능한 경우 융합된 곱셈 덧셈 연산을 수행하여 ``a * b + c``를 반환합니다. 반환 값이 결국 정확한 것으로 선언된 변수에 의해 소비되는 사용 사례:

  • ``fma()``는 단일 작업으로 간주되는 반면, 정밀로 선언된 변수에서 사용되는 표현식 ``a * b + c``는 두 작업으로 간주됩니다.

  • fma()``의 정밀도는 ``a * b + c 표현식의 정밀도와 다를 수 있습니다.

  • ``fma()``는 정밀 변수가 사용하는 다른 ``fma()``와 동일한 정밀도로 계산되어 a, b 및 c의 동일한 입력 값에 대해 불변 결과를 제공합니다.

그렇지 않으면 정확한 소비가 없는 경우 fma()``와 ``a * b + c 표현 사이의 연산 횟수나 정밀도 차이에 대한 특별한 제한은 없습니다.

매개변수 a:

최종 결과물

매개변수 b:

곱할 두 번째 값입니다.

매개변수 c:

파일의 절대 경로

return:

``a * b + c``의 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/fma.xhtml


vec_type 단계(vec_type a, vec_type b) 🔗

vec_type 단계(float a, vec_type b) 🔗

Component-wise Function.

b를 a와 비교하여 계단 함수를 생성합니다.

``if (b < a) { return 0.0; } else { return 1.0; }``와 동일합니다. 반환 값의 요소 i에 대해 b[i] < a[i]이면 0.0이 반환되고 그렇지 않으면 1.0이 반환됩니다.

매개변수 a:

스크립트 하단에, 아래와 같은 함수를 정의합니다:

매개변수 b:

계단 함수를 생성하는 데 사용되는 값입니다.

return:

0.0 또는 1.0.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/step.xhtml


vec_type 스무스스텝(vec_type a, vec_type b, vec_type c) 🔗

vec_type 부드러운 단계(float a, float b, vec_type c) 🔗

Component-wise Function.

a < c < b인 경우 0``와 ``1 사이에서 부드러운 에르미트 보간을 수행합니다. 이는 부드러운 전환이 가능한 임계값 기능이 필요한 경우에 유용합니다.

Smoothstep은 다음과 동일합니다.

vec_type t;
t = clamp((c - a) / (b - a), 0.0, 1.0);
return t * t * (3.0 - 2.0 * t);

``a >= b``인 경우 결과가 정의되지 않습니다.

매개변수 a:

Hermite 함수의 하한값입니다.

매개변수 b:

Hermite 함수의 위쪽 가장자리 값입니다.

매개변수 c:

변형 보간

return:

보간법 (Interpolation)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/smoothstep.xhtml


vec_bool_type 이스난(vec_type x) 🔗

Component-wise Function.

결과의 각 요소 i에 대해 x[i]가 양수 또는 음수 부동 소수점 NaN(숫자가 아님)이면 ``true``를 반환하고 그렇지 않으면 false를 반환합니다.

매개변수 x:

최종 결과물

return:

true 또는 false.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/isnan.xhtml


vec_bool_type isinf(vec_type x) 🔗

Component-wise Function.

결과의 각 요소 i에 대해 x[i]가 양수 또는 음수 부동 소수점 무한대이면 ``true``를 반환하고 그렇지 않으면 false를 반환합니다.

매개변수 x:

타입을 등록하는 데는 두 가지 시스템이 있습니다:

return:

true 또는 false.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/isinf.xhtml


vec_int_type floatBitsToInt(vec_type x) 🔗

Component-wise Function.

부동 소수점 매개변수의 인코딩을 ``int``로 반환합니다.

부동 소수점 비트 수준 표현은 유지됩니다.

매개변수 x:

반환할 부동 소수점 인코딩의 값입니다.

return:

``x``의 부동 소수점 인코딩입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/floatBitsToInt.xhtml


vec_uint_type floatBitsToUint(vec_type x) 🔗

Component-wise Function.

부동 소수점 매개변수의 인코딩을 ``uint``로 반환합니다.

부동 소수점 비트 수준 표현은 유지됩니다.

매개변수 x:

반환할 부동 소수점 인코딩의 값입니다.

return:

``x``의 부동 소수점 인코딩입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/floatBitsToInt.xhtml


vec_type intBitsToFloat(vec_int_type x) 🔗

Component-wise Function.

비트 인코딩을 부동 소수점 값으로 변환합니다. `floatBitsToInt<shader_func_floatBitsToInt>`의 반대

``NaN``의 인코딩이 ``x``에 전달되면 시그널가 아니며 결과 값이 정의되지 않습니다.

부동 소수점 무한대의 인코딩이 매개변수 ``x``에 전달되는 경우 결과 부동 소수점 값은 해당(양수 또는 음수) 부동 소수점 무한대입니다.

매개변수 x:

부동 소수점 값으로 반환할 비트 인코딩입니다.

return:

부동 소수점 숫자 (실수)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/intBitsToFloat.xhtml


vec_type uintBitsToFloat(vec_uint_type x) 🔗

Component-wise Function.

비트 인코딩을 부동 소수점 값으로 변환합니다. `floatBitsToUint<shader_func_floatBitsToUint>`의 반대

``NaN``의 인코딩이 ``x``에 전달되면 시그널가 아니며 결과 값이 정의되지 않습니다.

부동 소수점 무한대의 인코딩이 매개변수 ``x``에 전달되는 경우 결과 부동 소수점 값은 해당(양수 또는 음수) 부동 소수점 무한대입니다.

매개변수 x:

부동 소수점 값으로 반환할 비트 인코딩입니다.

return:

부동 소수점 숫자 (실수)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/intBitsToFloat.xhtml


정적 함수

float

length(vec_type x)

벡터

float

distance(vec_type a, vec_type b)

벡터 사이의 거리(예: length(a - b))

float

dot(vec_type a, vec_type b)

내적

vec3

cross(vec3 a, vec3 b)

외적

벡터

normalize(vec_type x)

단위 길이로 정규화합니다.

vec3

reflect(vec3 I, vec3 N)

반사

vec3

refract(vec3 I, vec3 N, 플로트 에타)

굴절률

벡터

faceforward(vec_type N, vec_type I, vec_type Nref)

dot(Nref, I) < 0이면 ``N``를 반환하고, 그렇지 않으면 ``-N``를 반환합니다.

mat_type

matrixCompMult(mat_type x, mat_type y)

행렬 곱

mat_type

outerProduct(vec_type 열, vec_type 행)

내적

mat_type

transpose(|mat_type|m)

행렬을 전치합니다.

float

determinant(|mat_type|m)

행렬 팁

mat_type

inverse(|mat_type|m)

역변환

설명

부동 소수점 길이(vec_type x) 🔗

벡터의 길이를 반환합니다. 즉. sqrt(x[0] * x[0] + x[1] * x[1] + ... + x[n] * x[n])

매개변수 x:

원격 인스펙터.

return:

파일의 절대 경로

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/length.xhtml


부동 소수점 거리(vec_type a, vec_type b) 🔗

두 점 a와 b 사이의 거리를 반환합니다.

즉, length(b - a);

매개변수 a:

최종 결과물

매개변수 b:

두 번째 요점.

return:

점 사이의 스칼라 거리

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/distance.xhtml


부동 소수점 (vec_type a, vec_type b) 🔗

두 벡터 ab``의 내적을 반환합니다. 즉, ``a.x * b.x + a.y * b.y + ...

매개변수 a:

원격 인스펙터.

매개변수 b:

원격 인스펙터.

return:

내적

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/dot.xhtml


vec3 십자가(vec3 a, vec3 b) 🔗

두 벡터의 외적을 반환합니다. 즉:

vec2( a.y * b.z - b.y * a.z,
      a.z * b.x - b.z * a.x,
      a.x * b.z - b.x * a.y)
매개변수 a:

원격 인스펙터.

매개변수 b:

원격 인스펙터.

return:

``a``와 ``b``의 외적입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/cross.xhtml


vec_type 정규화(vec_type x) 🔗

``x``와 방향은 같지만 길이는 ``1.0``인 벡터를 반환합니다.

매개변수 x:

정규화할 벡터입니다.

return:

정규화된 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/normalize.xhtml


vec3 반영(vec3 I, vec3 N) 🔗

입사 벡터의 반사 방향을 계산합니다.

주어진 입사 벡터 I 및 표면 법선 N Reflect에 대해 반사 방향은 ``I - 2.0 * dot(N, I) * N``로 계산되어 반환됩니다.

참고

원하는 결과를 얻으려면 ``N``를 정규화해야 합니다.

매개변수 I:

단위 벡터

매개변수 N:

원격 인스펙터.

return:

최종 결과물

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/reflect.xhtml


vec3 굴절(vec3 I, vec3 N, float eta) 🔗

입사 벡터의 굴절 방향을 계산합니다.

주어진 입사 벡터 I, 표면 법선 N 및 굴절 지수 비율 ``eta``에 대해 refract는 굴절 벡터 ``R``를 반환합니다.

``R``는 다음과 같이 계산됩니다.

k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I));
if (k < 0.0)
    R = genType(0.0);       // or genDType(0.0)
else
    R = eta * I - (eta * dot(N, I) + sqrt(k)) * N;

참고

원하는 결과를 얻으려면 입력 매개변수 I와 N을 정규화해야 합니다.

매개변수 I:

단위 벡터

매개변수 N:

원격 인스펙터.

매개변수:

명명된 타입

return:

굴절 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/refract.xhtml


vec_type 앞으로(vec_type N, vec_type I, vec_type Nref) 🔗

다른 벡터와 동일한 방향을 가리키는 벡터를 반환합니다.

법선에 의해 정의된 표면에서 멀어지도록 벡터의 방향을 지정합니다. dot(Nref, I) < 0 페이스포워드가 ``N``를 반환하면, 그렇지 않으면 ``-N``를 반환합니다.

매개변수 N:

편집기

매개변수 I:

단위 벡터

매개변수 Nref:

참조 벡터.

return:

Invert Color(색상 반전)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/faceforward.xhtml


mat_type matrixCompMult(mat_type x, mat_type y) 🔗

두 행렬의 comComponent-wise 곱셈을 수행합니다.

두 행렬의 구성요소별 곱셈을 수행하여 각 구성요소 result[i][j]``가 ``x[i][j]``y[i][j]``의 스칼라 곱으로 계산되는 결과 행렬을 생성합니다.

매개변수 x:

첫 번째 행렬 피승수입니다.

매개변수 y:

두 번째 행렬 피승수입니다.

return:

물리 머티리얼

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/matrixCompMult.xhtml


mat_type 외부제품(vec_type 열, vec_type 행) 🔗

벡터 쌍의 외부 곱을 계산합니다.

선형 대수 행렬이 ``column * row``를 곱하여 행 수가 ``column``의 구성 요소 수이고 열 수가 ``row``의 구성 요소 수인 행렬을 생성합니까?

매개변수 열:

행렬 곱

매개변수 행:

행렬 곱

return:

내적

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/outerProduct.xhtml


mat_type 전치(mat_type m) 🔗

애니메이션 만들기

매개변수 m:

3x2 행렬(Matrix)로 2D 변형에 사용됩니다.

return:

입력 행렬 ``m``를 전치한 새로운 행렬입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/transpose.xhtml


float 행렬(mat_type m) 🔗

행렬의 행렬식을 계산합니다.

매개변수 m:

전치

return:

입력 행렬 ``m``의 행렬식입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/determinant.xhtml


mat_type (|mat_type|m) 🔗

행렬의 역행렬을 계산합니다.

``m``가 특이값이거나 조건이 좋지 않은(거의 특이점) 경우 반환된 행렬의 값은 정의되지 않습니다.

매개변수 m:

역행렬을 취하는 행렬입니다.

return:

입력 행렬 ``m``의 역행렬인 새로운 행렬.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/inverse.xhtml


변형 기능들

vec_bool_type

lessThan(vec_type x, vec_type y)

< int/uint/float 벡터에 대한 부울 벡터 비교.

vec_bool_type

greaterThan(vec_type x, vec_type y)

int/uint/float 벡터에 대한 Bool 벡터 비교.

vec_bool_type

lessThanEqual(vec_type x, vec_type y)

<= int/uint/float 벡터에 대한 부울 벡터 비교.

vec_bool_type

greaterThanEqual(vec_type x, vec_type y)

>= int/uint/float 벡터에 대한 부울 벡터 비교.

vec_bool_type

equal(vec_type x, vec_type y)

== int/uint/float 벡터에 대한 부울 벡터 비교.

vec_bool_type

notEqual(vec_type x, vec_type y)

!= int/uint/float 벡터에 대한 부울 벡터 비교.

bool

any(vec_bool_type x)

구성 요소가 true``인 경우 ``true, 그렇지 않은 경우 ``false``입니다.

bool

all(vec_bool_type x)

모든 구성 요소가 true``인 경우 ``true, 그렇지 않은 경우 ``false``입니다.

vec_bool_type

not(vec_bool_type x)

Invert Color(색상 반전)

콜리전 예외

vec_bool_type lessThan(vec_type x, vec_type y) 🔗

두 벡터의 component-wise 미만 비교를 수행합니다.

매개변수 x:

최종 결과물

매개변수 y:

비교할 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] < y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/lessThan.xhtml


vec_bool_type 보다 큼(vec_type x, vec_type y) 🔗

두 벡터의 비교보다 큰 :ref:`component-wise<shading_componentwise>`를 수행합니다.

매개변수 x:

최종 결과물

매개변수 y:

비교할 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] > y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/greaterThan.xhtml


vec_bool_type lessThanEqual(vec_type x, vec_type y) 🔗

두 벡터의 component-wise 작거나 같음 비교를 수행합니다.

매개변수 x:

최종 결과물

매개변수 y:

비교할 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] <= y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/lessThanEqual.xhtml


vec_bool_type 보다 큼(vec_type x, vec_type y) 🔗

두 벡터의 component-wise 크거나 같음 비교를 수행합니다.

매개변수 x:

최종 결과물

매개변수 y:

비교할 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] >= y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/greaterThanEqual.xhtml


vec_bool_type 같음(vec_type x, vec_type y) 🔗

두 벡터의 component-wise 동일 비교를 수행합니다.

매개변수 x:

최종 결과물

매개변수 y:

비교할 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] == y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/equal.xhtml


vec_bool_type 같지 않음(vec_type x, vec_type y) 🔗

두 벡터의 component-wise 같지 않음 비교를 수행합니다.

매개변수 x:

비교를 위한 첫 번째 벡터입니다.

매개변수 y:

비교를 위한 두 번째 벡터입니다.

return:

각 요소 ``i``가 ``x[i] != y[i]``로 계산되는 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/notEqual.xhtml


bool 모든(vec_bool_type x) 🔗

부울 벡터의 요소 중 하나라도 ``true``이면 ``true``를 반환하고, 그렇지 않으면 ``false``를 반환합니다.

기능적으로 다음과 동일합니다.

bool any(bvec x) {     // bvec can be bvec2, bvec3 or bvec4
    bool result = false;
    int i;
    for (i = 0; i < x.length(); ++i) {
        result |= x[i];
    }
    return result;
}
매개변수 x:

진실 여부를 테스트할 벡터입니다.

return:

x의 요소 중 하나라도 참이면 참이고 그렇지 않으면 거짓입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/any.xhtml


bool 모두(vec_bool_type x) 🔗

부울 벡터의 모든 요소가 ``true``이면 ``true``를 반환하고, 그렇지 않으면 ``false``를 반환합니다.

기능적으로 다음과 동일합니다.

bool all(bvec x)       // bvec can be bvec2, bvec3 or bvec4
{
    bool result = true;
    int i;
    for (i = 0; i < x.length(); ++i)
    {
        result &= x[i];
    }
    return result;
}
매개변수 x:

진실 여부를 테스트할 벡터입니다.

return:

``x``의 모든 요소가 ``true``이면 ``true``이고 그렇지 않으면 ``false``입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/all.xhtml


vec_bool_type 아님(vec_bool_type x) 🔗

Invert Color(색상 반전)

매개변수 x:

반전할 벡터입니다.

return:

각 요소 i가 !x[i]로 계산되는 새로운 부울 벡터입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/not.xhtml


기타 함수

아이벡2
아이벡2
아이벡2
아이벡3
아이벡3
textureSize(gsampler2D s, int lod)
textureSize(SamplerCube s, int lod)
textureSize(SamplerCubeArray s, int lod)
textureSize(gsampler2DArray s, int lod)
textureSize(gsampler3D s, int lod)

텍스처 가져오기

성능상의 이유로 이 함수는 항상 전체 텍스처 읽기를 수행하므로 피해야 합니다. 가능하다면 텍스처 크기를 대신 균일하게 전달해야 합니다.

vec2
vec3
vec2
vec2
textureQueryLod(gsampler2D s, vec2 p)
textureQueryLod(gsampler2DArray s, vec2 p)
textureQueryLod(gsampler3D s, vec3 p)
textureQueryLod(샘플러큐브 s, vec3 p)

텍스처에서 샘플링하는 데 사용될 세부 수준을 계산합니다.

타일 칠하기
타일 칠하기
타일 칠하기
타일 칠하기
textureQueryLevels(gsampler2D 초)
textureQueryLevels(gsampler2DArray 초)
textureQueryLevels(gsampler3D 초)
textureQueryLevels(샘플러큐브 s)

텍스처의 접근 가능한 밉맵 레벨 수를 가져옵니다.

gvec4_type
gvec4_type
gvec4_type
vec4
vec4
vec4
texture(gsampler2D s, vec2 p [, float bias] )
texture(gsampler2DArray s, vec3 p [, float bias] )
texture(gsampler3D s, vec3 p [, float bias] )
texture(샘플러큐브 s, vec3 p [, float bias] )
texture(SamplerCubeArray s, vec4 p [, float bias] )
texture(SamplerExternalOES s, vec2 p [, float bias] )

텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
textureProj(gsampler2D s, vec3 p [, float bias] )
textureProj(gsampler2D s, vec4 p [, float bias] )
textureProj(gsampler3D s, vec4 p [, float bias] )

투영을 통해 텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
vec4
vec4
textureLod(gsampler2D s, vec2 p, 플로트 로드)
textureLod(gsampler2DArray s, vec3 p, 플로트 로드)
textureLod(gsampler3D s, vec3 p, 플로트 로드)
textureLod(SamplerCube s, vec3 p, float lod)
textureLod(SamplerCubeArray s, vec4 p, float lod)

사용자 정의 밉맵에서 텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
textureProjLod(gsampler2D s, vec3 p, 플로트 로드)
textureProjLod(gsampler2D s, vec4 p, 플로트 로드)
textureProjLod(gsampler3D s, vec4 p, 플로트 로드)

투영/LOD를 사용하여 텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
vec4
vec4
textureGrad(gsampler2D s, vec2 p, vec2 dPdx, vec2 dPdy)
textureGrad(gsampler2DArray s, vec3 p, vec2 dPdx, vec2 dPdy)
textureGrad(gsampler3D s, vec3 p, vec2 dPdx, vec2 dPdy)
textureGrad(샘플러큐브 s, vec3 p, vec3 dPdx, vec3 dPdy)
textureGrad(SamplerCubeArray s, vec3 p, vec3 dPdx, vec3 dPdy)

명시적인 그라데이션을 사용하여 텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
textureProjGrad(gsampler2D s, vec3 p, vec2 dPdx, vec2 dPdy)
textureProjGrad(gsampler2D s, vec4 p, vec2 dPdx, vec2 dPdy)
textureProjGrad(gsampler3D s, vec4 p, vec3 dPdx, vec3 dPdy)

투영/LOD 및 명시적을 사용하여 텍스처 읽기를 수행합니다.

gvec4_type
gvec4_type
gvec4_type
texelFetch(gsampler2D s, ivec2 p, int lod)
texelFetch(gsampler2DArray s, ivec3 p, int lod)
texelFetch(gsampler3D s, ivec3 p, int lod)

정수 좌표를 사용하여 단일 텍셀을 가져옵니다.

gvec4_type
gvec4_type
vec4
textureGather(gsampler2D s, vec2 p [, int comps] )
textureGather(gsampler2DArray s, vec3 p [, int comps] )
textureGather(샘플러큐브 s, vec3 p [, int comps] )

텍스처 가져오기

벡터

dFdx(vec_type p)

x 창 좌표에 대한 파생, 자동 세분성.

벡터

dFdxCoarse(vec_type p)

x 창 좌표, 코스 세분성을 기준으로 파생되었습니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

벡터

dFdxFine(vec_type 피)

x 창 좌표를 기준으로 한 파생, 미세한 세분성입니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

벡터

dFdy(vec_type 피)

y 창 좌표에 대한 파생, 자동 세분성.

벡터

dFdyCoarse(vec_type 피)

y 창 좌표, 코스 세분성을 기준으로 파생되었습니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

벡터

dFdyFine(vec_type 피)

y 창 좌표를 기준으로 한 파생, 미세한 세분성입니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

벡터

fwidth(vec_type 피)

x``y``의 절대 도함수 합계입니다.

벡터

fwidthCoarse(vec_type 피)

x``y``의 절대 도함수 합계입니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

벡터

fwidthFine(vec_type 피)

x``y``의 절대 도함수 합계입니다.

호환성 렌더러를 사용하는 경우에는 사용할 수 없습니다.

설명

ivec2 textureSize(gsampler2D s, int lod) 🔗

ivec2 textureSize(SamplerCube s, int lod) 🔗

ivec2 textureSize(SamplerCubeArray s, int lod) 🔗

ivec3 textureSize(gsampler2DArray s, int lod) 🔗

ivec3 textureSize(gsampler3D s, int lod) 🔗

텍스처의 레벨의 차원을 받아옵니다.

샘플러에 바인딩된 텍스처의 레벨 ``lod``(있는 경우)의 크기를 반환합니다.

반환 값의 구성 요소는 순서대로 텍스처의 너비, 높이, 깊이로 채워집니다. 배열 형식의 경우 반환 값의 마지막 구성 요소는 텍스처 배열의 레이어 수입니다.

매개변수:

검색할 차원의 텍스처가 바인딩되는 샘플러입니다.

매개변수 로드:

치수를 검색할 텍스처 수준입니다.

return:

샘플러에 바인딩된 텍스처의 레벨 ``lod``(있는 경우) 크기입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureSize.xhtml


vec2 textureQueryLod(gsampler2D s, vec2 p) 🔗

vec2 textureQueryLod(gsampler2DArray s, vec2 p) 🔗

vec2 textureQueryLod(gsampler3D s, vec3 p) 🔗

vec2 textureQueryLod(SamplerCube s, vec3 p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다.

텍스처에서 샘플링하는 데 사용될 세부 수준을 계산합니다.

액세스되는 밉맵 배열은 반환 값의 x 구성 요소로 반환됩니다. 기본 수준을 기준으로 계산된 세부 수준은 반환 값의 y 구성 요소에 반환됩니다.

불완전한 텍스처에 대해 호출하면 작업 결과가 정의되지 않습니다.

매개변수:

세부 수준을 쿼리할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

세부 수준을 쿼리할 텍스처 좌표입니다.

return:

설명

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureQueryLod.xhtml


int textureQueryLevels(gsampler2D s) 🔗

int textureQueryLevels(gsampler2DArray s) 🔗

int textureQueryLevels(gsampler3D s) 🔗

int textureQueryLevels(SamplerCube s) 🔗

텍스처의 액세스 가능한 밉맵 수준 수를 계산합니다.

불완전한 텍스처에 대해 호출되거나 샘플러와 연결된 텍스처가 없는 경우 ``0``가 반환됩니다.

매개변수:

밉맵 레벨 개수를 쿼리할 텍스처가 바인딩되는 샘플러입니다.

return:

텍스처에서 액세스 가능한 밉맵 수준 수 또는 ``0``입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureQueryLevels.xhtml


gvec4_type 텍스처(gsampler2D s, vec2 p [, float bias] ) 🔗

gvec4_type 텍스처(gsampler2DArray s, vec3 p [, float bias] ) 🔗

gvec4_type 텍스처(gsampler3D s, vec3 p [, float bias] ) 🔗

vec4 텍스처(SamplerCube s, vec3 p [, float bias] ) 🔗

vec4 텍스처(SamplerCubeArray s, vec4 p [, float bias] ) 🔗

vec4 텍스처(SamplerExternalOES s, vec2 p [, float bias] ) 🔗

텍스처에서 텍셀을 받아옵니다.

텍스처 좌표 ``p``에서 ``s``에 바인딩된 텍스처에서 텍셀을 샘플링합니다. ``bias``에 지정된 선택적 편향은 샘플링할 밉맵을 선택하는 데 사용되는 세부 수준 계산에 포함됩니다.

Shadow Form의 경우 ``p``의 마지막 컴포넌트를 Dsub로 사용하고, Array 레이어는 ``p``의 두 번째에서 마지막 컴포넌트로 지정합니다. (``p``의 두 번째 구성 요소는 1D 그림자 조회에 사용되지 않습니다.)

그림자가 아닌 변형의 경우 배열 레이어는 P의 마지막 구성 요소에서 나옵니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

밉맵:

세부 수준 계산 중에 적용할 선택적 편향입니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/texture.xhtml


gvec4_type textureProj(gsampler2D s, vec3 p [, float bias] ) 🔗

gvec4_type textureProj(gsampler2D s, vec4 p [, float bias] ) 🔗

gvec4_type textureProj(gsampler3D s, vec4 p [, float bias] ) 🔗

투영을 사용하여 텍스처 조회를 수행합니다.

``p``의 마지막 구성 요소를 제외하고 ``p``에서 소비된 텍스처 좌표는 ``p``의 마지막 구성 요소로 나뉩니다. 그림자 형태의 ``p``의 세 번째 구성 요소가 Dref로 사용됩니다. 이러한 값이 계산된 후 텍스처 조회는 텍스처에서와 같이 진행됩니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

밉맵:

세부 수준 계산 중에 적용할 선택적 편향입니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureProj.xhtml


gvec4_type textureLod(gsampler2D s, vec2 p, float lod) 🔗

gvec4_type textureLod(gsampler2DArray s, vec3 p, float lod) 🔗

gvec4_type textureLod(gsampler3D s, vec3 p, float lod) 🔗

vec4 textureLod(SamplerCube s, vec3 p, float lod) 🔗

vec4 textureLod(SamplerCubeArray s, vec4 p, float lod) 🔗

lod``에 지정된 명시적 세부 수준을 사용하여 샘플러에 바인딩된 텍스처의 ``p 좌표에서 텍스처 조회를 수행합니다. ``lod``는 λbase를 지정하고 편도함수를 다음과 같이 설정합니다.

δu/δx=0, δv/δx=0, δw/δx=0
δu/δy=0, δv/δy=0, δw/δy=0
매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 로드:

명시적인 세부 수준입니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureLod.xhtml


gvec4_type textureProjLod(gsampler2D s, vec3 p, float lod) 🔗

gvec4_type textureProjLod(gsampler2D s, vec4 p, float lod) 🔗

gvec4_type textureProjLod(gsampler3D s, vec4 p, float lod) 🔗

명시적으로 지정된 세부 수준의 투영을 통해 텍스처 조회를 수행합니다.

``p``의 마지막 구성 요소를 제외하고 P에서 소비된 텍스처 좌표는 ``p``의 마지막 구성 요소로 나뉩니다. 그림자 형태의 ``p``의 세 번째 구성요소가 Dref로 사용됩니다. 이러한 값이 계산된 후 텍스처 조회는 `textureLod<shader_func_textureLod>`에서와 같이 진행되며 ``lod``는 텍스처가 샘플링될 세부 수준을 지정하는 데 사용됩니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 로드:

텍셀을 가져올 명시적인 세부 수준입니다.

return:

텍셀

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureProjLod.xhtml


gvec4_type textureGrad(gsampler2D s, vec2 p, vec2 dPdx, vec2 dPdy) 🔗

gvec4_type textureGrad(gsampler2DArray s, vec3 p, vec2 dPdx, vec2 dPdy) 🔗

gvec4_type textureGrad(gsampler3D s, vec3 p, vec2 dPdx, vec2 dPdy) 🔗

vec4 textureGrad(SamplerCube s, vec3 p, vec3 dPdx, vec3 dPdy) 🔗

vec4 textureGrad(SamplerCubeArray s, vec3 p, vec3 dPdx, vec3 dPdy) 🔗

dPdxdPdy``에 지정된 대로 명시적인 텍스처 좌표 그라데이션을 사용하여 샘플러에 바인딩된 텍스처의 ``p 좌표에서 텍스처 조회를 수행합니다. 설정:
  • 1D 텍스처의 경우 δs/δx=δp/δx, 그렇지 않은 경우 δp.s/δx

  • 1D 텍스처의 경우 δs/δy=δp/δy, 그렇지 않은 경우 δp.s/δy

  • 1D 텍스처의 경우 δt/δx=0.0, 그렇지 않은 경우 δp.t/δx

  • 1D 텍스처의 경우 δt/δy=0.0, 그렇지 않은 경우 δp.t/δy

  • 1D 또는 2D 텍스처의 경우 δr/δx=0.0, 그렇지 않은 경우 δp.p/δx

  • 1D 또는 2D 텍스처의 경우 δr/δy=0.0, 그렇지 않은 경우 δp.p/δy

큐브 버전의 경우 ``p``의 부분 파생물은 텍스처 좌표가 적절한 큐브 면에 투영되기 전에 사용되는 좌표계에 있는 것으로 가정됩니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 dPdx:

창 x에 대한 P의 편도함수입니다.

매개변수 dPdy:

창 y에 대한 P의 편도함수입니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureGrad.xhtml


gvec4_type textureProjGrad(gsampler2D s, vec3 p, vec2 dPdx, vec2 dPdy) 🔗

gvec4_type textureProjGrad(gsampler2D s, vec4 p, vec2 dPdx, vec2 dPdy) 🔗

gvec4_type textureProjGrad(gsampler3D s, vec4 p, vec3 dPdx, vec3 dPdy) 🔗

투영 및 명시적 그라데이션을 사용하여 텍스처 조회를 수행합니다.

p``의 마지막 구성 요소를 제외하고 ``p``에서 소비된 텍스처 좌표는 ``p``의 마지막 구성 요소로 나뉩니다. 이러한 값이 계산된 `textureGrad<shader_func_textureGrad>`에서와 같이 텍스처 조회가 진행되어 ``dPdx``dPdy``를 그라데이션으로 전달합니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 dPdx:

창 x에 대한 ``p``의 편도함수입니다.

매개변수 dPdy:

창 y에 대한 ``p``의 편도함수입니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureProjGrad.xhtml


gvec4_type texelFetch(gsampler2D s, ivec2 p, int lod) 🔗

gvec4_type texelFetch(gsampler2DArray s, ivec3 p, int lod) 🔗

gvec4_type texelFetch(gsampler3D s, ivec3 p, int lod) 🔗

샘플러에 바인딩된 텍스처의 텍스처 좌표 ``p``에서 단일 텍셀 조회를 수행합니다.

매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 로드:

텍셀을 가져올 텍스처 내의 세부 수준을 지정합니다.

return:

텍셀.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/texelFetch.xhtml


gvec4_type textureGather(gsampler2D s, vec2 p [, int comps] ) 🔗

gvec4_type textureGather(gsampler2DArray s, vec3 p [, int comps] ) 🔗

vec4 textureGather(샘플러큐브 s, vec3 p [, int comps] ) 🔗

텍스처 가져오기

값 반환:

vec4(Sample_i0_j1(p, base).comps,
     Sample_i1_j1(p, base).comps,
     Sample_i1_j0(p, base).comps,
     Sample_i0_j0(p, base).comps);
매개변수:

텍셀을 검색할 텍스처가 바인딩되는 샘플러입니다.

매개변수 p:

텍스처가 샘플링될 텍스처 좌표입니다.

매개변수 구성요소:

선택 사항 결과 벡터를 생성하는 데 사용될 소스 텍스처의 구성 요소(0 -> x, 1 -> y, 2 -> z, 3 -> w). 지정하지 않으면 0입니다.

return:

씬 트리

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/textureGather.xhtml


vec_type dFdx(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다.

국소 차분을 사용하여 창 x 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

dFdxCoarse 또는 dFdxFine<shader_func_dfdxFine>`를 반환합니다. 구현에서는 성능이나 API ``GL_FRAGMENT_SHADER_DERIVATIVE_HINT` 힌트 값과 같은 요소를 기반으로 수행할 계산을 선택할 수 있습니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type dFdx대략(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

창 x 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

현재 조각의 이웃에 대한 p 값을 기반으로 로컬 차분을 사용하여 도함수를 계산하며, 반드시는 아니지만 현재 조각의 값을 포함할 수도 있습니다. 즉, 특정 영역에 대해 구현 시 해당 dFdxFine 함수에 허용되는 것보다 더 적은 수의 고유 위치에서 도함수를 계산할 수 있습니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type dFdxFine(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

창 x 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

현재 조각과 바로 이웃에 대한 p 값을 기반으로 지역 차분을 사용하여 도함수를 계산합니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type dFdy(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다.

국소 차분을 사용하여 창 y 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

dFdyCoarse 또는 dFdyFine<shader_func_dfdyFine>`를 반환합니다. 구현에서는 성능이나 API ``GL_FRAGMENT_SHADER_DERIVATIVE_HINT` 힌트 값과 같은 요소를 기반으로 수행할 계산을 선택할 수 있습니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type dFdy대략(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

창 y 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

현재 조각의 이웃에 대한 p 값을 기반으로 로컬 차분을 사용하여 도함수를 계산하며 반드시 그런 것은 아니지만 현재 조각의 값을 포함할 수도 있습니다. 즉, 특정 영역에 대해 구현 시 해당 dFdyFine 및 dFdyFine 함수에 허용되는 것보다 더 적은 수의 고유 위치에서 도함수를 계산할 수 있습니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type dFdyFine(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

창 y 좌표를 기준으로 ``p``의 편도함수를 반환합니다.

현재 조각과 바로 이웃에 대한 p 값을 기반으로 지역 차분을 사용하여 도함수를 계산합니다.

경고

``dFdx(dFdx(n))``와 같은 고차 파생어를 암시하는 표현식은 ``dFdx(dFdy(n))``와 같은 혼합 차수 파생어와 마찬가지로 정의되지 않은 결과를 갖습니다.

매개변수 p:

편미분을 취하는 표현식입니다.

참고

p 표현식은 연속적이므로 비균일 제어 흐름을 통해 평가된 표현식은 정의되지 않을 수 있다고 가정합니다.

return:

``p``의 부분 파생물입니다.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/dFdx.xhtml


vec_type f폭(vec_type p) 🔗

x와 y의 도함수 절대값의 합을 반환합니다.

입력 인수 ``p``에 대해 지역적 차이를 사용합니다.

``abs(dFdx(p)) + abs(dFdy(p))``와 동일합니다.

매개변수 p:

편미분을 취하는 표현식입니다.

return:

부분도함수.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/fwidth.xhtml


vec_type f폭대략(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

x와 y의 도함수 절대값의 합을 반환합니다.

입력 인수 p에 대해 국소 차분을 사용합니다.

``abs(dFdxCoarse(p)) + abs(dFdyCoarse(p))``와 동일합니다.

매개변수 p:

편미분을 취하는 표현식입니다.

return:

부분도함수.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/fwidth.xhtml


vec_type fwidthFine(vec_type p) 🔗

참고

프래그먼트 셰이더에서만 사용 가능합니다. 호환성 렌더러를 사용할 때 사용 가능하지 않습니다.

x와 y의 도함수 절대값의 합을 반환합니다.

입력 인수 p에 대해 국소 차분을 사용합니다.

``abs(dFdxFine(p)) + abs(dFdyFine(p))``와 동일합니다.

매개변수 p:

편미분을 취하는 표현식입니다.

return:

부분도함수.

https://registry.khronos.org/OpenGL-Refpages/gl4/html/fwidth.xhtml


정적 함수

이 함수는 부동 소수점 숫자를 다양한 크기의 정수로 변환한 다음 해당 정수를 단일 32비트 부호 없는 정수로 묶습니다. 'unpack' 함수는 반대 작업을 수행하여 원래 부동 소수점 숫자를 반환합니다.

단위
vec2
packHalf2x16(vec2 v)
unpackHalf2x16(단위 v)

두 개의 32비트 부동 소수점을 16비트 부동 소수점으로 변환하고 압축합니다.

단위
vec2
unpackUnorm2x16(단위 v)

두 개의 정규화된(범위 0..1) 32비트 부동 소수점을 16비트 부호 없는 정수로 변환하고 압축합니다.

단위
vec2
unpackSnorm2x16(단위 v)

두 개의 부호 있는 정규화된(범위 -1..1) 32비트 부동 소수점을 16비트 부호 있는 정수로 변환하고 압축합니다.

단위
vec4
packUnorm4x8(vec4 v)
unpackUnorm4x8(단위 v)

4개의 정규화된(범위 0..1) 32비트 부동 소수점을 8비트 부호 없는 정수로 변환하고 압축합니다.

단위
vec4
packSnorm4x8(vec4 v)
unpackSnorm4x8(단위 v)

4개의 부호 있는 정규화(범위 -1..1) 32비트 부동 소수점을 8비트 부호 있는 정수로 변환하고 압축합니다.

포장 및 포장 풀기 기능 설명

단위 packHalf2x16(vec2 v) 🔗

두 개의 32비트 부동 소수점 수량을 16비트 부동 소수점 수량으로 변환하고 이를 단일 32비트 정수로 묶습니다.

두 개의 구성 요소로 구성된 부동 소수점 벡터의 구성 요소를 OpenGL 사양에 있는 16비트 부동 소수점 표현으로 변환한 다음 이 두 개의 16비트 정수를 32비트 부호 없는 정수로 압축하여 얻은 부호 없는 정수를 반환합니다. 첫 번째 벡터 구성요소는 결과의 최하위 16비트를 지정합니다. 두 번째 구성 요소는 16개의 최상위 비트를 지정합니다.

매개변수 v:

16비트 표현으로 변환되어 결과에 압축될 두 개의 32비트 부동 소수점 값의 벡터입니다.

return:

포장된 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packHalf2x16.xhtml


vec2 unpackHalf2x16(단위 v) 🔗

:ref:`packHalf2x16<shader_func_packHalf2x16>`의 반대입니다.

32비트 정수를 두 개의 16비트 부동 소수점 값으로 압축을 풀고 이를 32비트 부동 소수점 값으로 변환한 다음 벡터에 넣습니다. 벡터의 첫 번째 구성 요소는 ``v``의 최하위 16비트에서 얻습니다. 두 번째 구성 요소는 ``v``의 최상위 16비트에서 얻습니다.

매개변수 v:

2개의 압축된 16비트 부동 소수점 값을 포함하는 단일 32비트 부호 없는 정수입니다.

return:

부동 소수점 숫자 (실수)

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/unpackHalf2x16.xhtml


단위 packUnorm2x16(vec2 v) 🔗

부동 소수점 값을 부호 없는 정수로 압축합니다.

정규화된 부동 소수점 값 v의 각 구성 요소를 16비트 정수 값으로 변환한 다음 결과를 32비트 부호 없는 정수로 압축합니다.

``v``의 구성 요소 c를 고정 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

round(clamp(c, 0.0, 1.0) * 65535.0)

벡터의 첫 번째 구성 요소는 출력의 최하위 비트에 기록됩니다. 마지막 구성 요소는 최상위 비트에 기록됩니다.

매개변수 v:

부호 없는 정수로 압축할 값의 벡터입니다.

return:

벡터의 압축된 인코딩을 포함하는 부호 없는 32비트 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packUnorm.xhtml


vec2 unpackUnorm2x16(단위 v) 🔗

부호 없는 정수에서 부동 소수점 값의 압축을 풉니다.

단일 32비트 부호 없는 정수를 16비트 부호 없는 정수 쌍으로 압축 해제합니다. 그런 다음 각 구성요소는 정규화된 부동 소수점 값으로 변환되어 반환된 2개 구성요소 벡터를 생성합니다.

압축이 풀린 고정 소수점 값 f를 부동 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

f / 65535.0

반환된 벡터의 첫 번째 구성 요소는 입력의 최하위 비트에서 추출됩니다. 마지막 구성 요소는 최상위 비트에서 추출됩니다.

매개변수 v:

압축된 부동 소수점 값을 포함하는 부호 없는 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/unpackUnorm.xhtml


단위 packSnorm2x16(vec2 v) 🔗

부동 소수점 값을 부호 없는 정수로 압축합니다.

정규화된 부동 소수점 값 ``v``의 각 구성 요소를 16비트 정수 값으로 변환한 다음 결과를 32비트 부호 없는 정수로 압축합니다.

``v``의 구성 요소 c를 고정 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

round(clamp(c, -1.0, 1.0) * 32767.0)

벡터의 첫 번째 구성 요소는 출력의 최하위 비트에 기록됩니다. 마지막 구성 요소는 최상위 비트에 기록됩니다.

매개변수 v:

부호 없는 정수로 압축할 값의 벡터입니다.

return:

벡터의 압축된 인코딩을 포함하는 부호 없는 32비트 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packUnorm.xhtml


vec2 unpackSnorm2x16(단위 v) 🔗

부호 없는 정수에서 부동 소수점 값을 압축 해제합니다.

단일 32비트 부호 없는 정수를 16비트 부호 있는 정수 쌍으로 압축 해제합니다. 그런 다음 각 구성요소는 정규화된 부동 소수점 값으로 변환되어 반환된 2개 구성요소 벡터를 생성합니다.

압축이 풀린 고정 소수점 값 f를 부동 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

클램프(f / 32727.0, -1.0, 1.0)

반환된 벡터의 첫 번째 구성 요소는 입력의 최하위 비트에서 추출됩니다. 마지막 구성 요소는 최상위 비트에서 추출됩니다.

매개변수 v:

압축된 부동 소수점 값을 포함하는 부호 없는 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/unpackUnorm.xhtml


단위 packUnorm4x8(vec4 v) 🔗

부동 소수점 값을 부호 없는 정수로 압축합니다.

정규화된 부동 소수점 값 ``v``의 각 구성 요소를 16비트 정수 값으로 변환한 다음 결과를 32비트 부호 없는 정수로 압축합니다.

``v``의 구성 요소 c를 고정 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

round(clamp(c, 0.0, 1.0) * 255.0)

벡터의 첫 번째 구성 요소는 출력의 최하위 비트에 기록됩니다. 마지막 구성 요소는 최상위 비트에 기록됩니다.

매개변수 v:

부호 없는 정수로 압축할 값의 벡터입니다.

return:

벡터의 압축된 인코딩을 포함하는 부호 없는 32비트 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packUnorm.xhtml


vec4 unpackUnorm4x8(단위 v) 🔗

부호 없는 정수에서 부동 소수점 값을 압축 해제합니다.

단일 32비트 부호 없는 정수를 4개의 8비트 부호 없는 정수로 압축 해제합니다. 그런 다음 각 구성요소는 정규화된 부동 소수점 값으로 변환되어 반환된 4개 구성요소 벡터를 생성합니다.

압축이 풀린 고정 소수점 값 f를 부동 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

f / 255.0

반환된 벡터의 첫 번째 구성 요소는 입력의 최하위 비트에서 추출됩니다. 마지막 구성 요소는 최상위 비트에서 추출됩니다.

매개변수 v:

압축된 부동 소수점 값을 포함하는 부호 없는 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/unpackUnorm.xhtml


단위 packSnorm4x8(vec4 v) 🔗

부동 소수점 값을 부호 없는 정수로 압축합니다.

정규화된 부동 소수점 값 ``v``의 각 구성 요소를 16비트 정수 값으로 변환한 다음 결과를 32비트 부호 없는 정수로 압축합니다.

``v``의 구성 요소 c를 고정 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

round(clamp(c, -1.0, 1.0) * 127.0)

벡터의 첫 번째 구성 요소는 출력의 최하위 비트에 기록됩니다. 마지막 구성 요소는 최상위 비트에 기록됩니다.

매개변수 v:

부호 없는 정수로 압축할 값의 벡터입니다.

return:

벡터의 압축된 인코딩을 포함하는 부호 없는 32비트 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/packUnorm.xhtml


vec4 unpackSnorm4x8(단위 v) 🔗

부호 없는 정수에서 부동 소수점 값의 압축을 풉니다.

단일 32비트 부호 없는 정수를 4개의 8비트 부호 있는 정수로 압축 해제합니다. 그런 다음 각 구성요소는 정규화된 부동 소수점 값으로 변환되어 반환된 4개 구성요소 벡터를 생성합니다.

압축이 풀린 고정 소수점 값 f를 부동 소수점으로 변환하는 작업은 다음과 같이 수행됩니다.

클램프(f / 127.0, -1.0, 1.0)

반환된 벡터의 첫 번째 구성 요소는 입력의 최하위 비트에서 추출됩니다. 마지막 구성 요소는 최상위 비트에서 추출됩니다.

매개변수 v:

압축된 부동 소수점 값을 포함하는 부호 없는 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/unpackUnorm.xhtml


정적 함수

vec_int_type
vec_uint_type
bitfieldExtract(vec_int_type 값, int 오프셋, int 비트)
bitfieldExtract(vec_uint_type 값, int 오프셋, int 비트)

정수에서 비트 범위를 추출합니다.

vec_int_type
vec_uint_type
bitfieldInsert(vec_int_type 베이스, vec_int_type 삽입, int 오프셋, int 비트)
bitfieldInsert(vec_uint_type 베이스, vec_uint_type 삽입, int 오프셋, int 비트)

비트 범위를 정수에 삽입합니다.

vec_int_type
vec_uint_type
bitfieldReverse(vec_int_type 값)
bitfieldReverse(vec_uint_type 값)

정수의 비트 순서를 반대로 바꿉니다.

vec_int_type
vec_uint_type
bitCount(vec_int_type 값)
bitCount(vec_uint_type 값)

정수에서 1비트의 개수를 셉니다.

vec_int_type
vec_uint_type
findLSB(vec_int_type 값)
findLSB(vec_uint_type 값)

정수에서 1로 설정된 최하위 비트의 인덱스를 찾습니다.

vec_int_type
vec_uint_type
findMSB(vec_int_type 값)
findMSB(vec_uint_type 값)

정수에서 1로 설정된 최상위 비트의 인덱스를 찾습니다.

void
void
imulExtended(vec_int_type x, vec_int_type y, 출력 vec_int_type msb, 출력 vec_int_type lsb)
umulExtended(vec_uint_type x, vec_uint_type y, 출력 vec_uint_type msb, 출력 vec_uint_type lsb)

두 개의 32비트 숫자를 곱하여 64비트 결과를 생성합니다.

vec_uint_type

uaddCarry(vec_uint_type x, vec_uint_type y, 아웃 vec_uint_type 캐리)

두 개의 부호 없는 정수를 더하고 캐리를 생성합니다.

vec_uint_type

usubBorrow(vec_uint_type x, vec_uint_type y, 밖으로 vec_uint_type 빌림)

두 개의 부호 없는 정수를 빼고 빌림을 생성합니다.

벡터

ldexp(vec_type x, vec_int_type exp)

값과 지수로부터 부동 소수점 숫자를 조합합니다.

벡터

frexp(vec_type x, vec_int_type exp)

부동 소수점 숫자(x)를 유효 정수 구성요소로 분할합니다.

설명

vec_int_type bitfieldExtract(vec_int_type 값, int 오프셋, int 비트) 🔗

value 비트의 하위 집합을 추출하여 결과의 최하위 비트로 반환합니다. 추출되는 비트의 범위는 ``[offset, offset + bits - 1]``입니다.

결과의 최상위 비트는 0으로 설정됩니다.

참고

비트가 0이면 결과는 0이 됩니다.

경고

다음과 같은 경우 결과가 정의되지 않습니다.

  • 오프셋 또는 비트가 음수입니다.

  • 오프셋과 비트의 합이 피연산자를 저장하는 데 사용된 비트 수보다 큰 경우.

:

비트를 추출할 정수입니다.

오프셋:

추출할 첫 번째 비트의 인덱스입니다.

매개변수:

오류의 행 번호

return:

요청된 비트가 포함된 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/bitfieldExtract.xhtml


vec_uint_type bitfieldExtract(vec_uint_type 값, int 오프셋, int 비트) 🔗

Component-wise Function.

value 비트의 하위 집합을 추출하여 결과의 최하위 비트로 반환합니다. 추출되는 비트의 범위는 ``[offset, offset + bits - 1]``입니다.

최상위 비트는 offset + base - 1 값으로 설정됩니다(즉, 반환 유형의 너비로 부호 확장됨).

참고

비트가 0이면 결과는 0이 됩니다.

경고

다음과 같은 경우 결과가 정의되지 않습니다.

  • 오프셋 또는 비트가 음수입니다.

  • 오프셋과 비트의 합이 피연산자를 저장하는 데 사용된 비트 수보다 큰 경우.

:

비트를 추출할 정수입니다.

오프셋:

추출할 첫 번째 비트의 인덱스입니다.

매개변수:

오류의 행 번호

return:

요청된 비트가 포함된 정수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/bitfieldExtract.xhtml


vec_uint_type bitfieldExtract(vec_uint_type 값, int 오프셋, int 비트) 🔗

vec_uint_type bitfieldInsert(vec_uint_type 기본, vec_uint_type 삽입, int 오프셋, int 비트) 🔗

Component-wise Function.

bits insert``의 최하위 비트를 ``offset 오프셋에서 ``base``에 삽입합니다.

반환된 값에는 ``insert``의 [0, bits - 1]에서 가져온 비트 [offset, offset + bits + 1]와 기본의 해당 비트에서 직접 가져온 다른 모든 비트가 포함됩니다.

참고

비트가 0이면 결과는 base의 원래 값이 됩니다.

경고

다음과 같은 경우 결과가 정의되지 않습니다.

  • 오프셋 또는 비트가 음수입니다.

  • 오프셋과 비트의 합이 피연산자를 저장하는 데 사용된 비트 수보다 큰 경우.

매개변수 베이스:

``insert``를 삽입할 정수입니다.

assert:

명명된 타입

오프셋:

삽입할 첫 번째 비트의 인덱스입니다.

매개변수:

오류의 행 번호

return:

비트가 삽입된 base.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/bitfieldInsert.xhtml


vec_int_type bitfieldReverse(vec_int_type 값) 🔗

vec_uint_type bitfieldReverse(vec_uint_type 값) 🔗

Component-wise Function.

정수의 비트 순서를 반대로 바꿉니다.

``n``라는 비트는 ``value``의 비트 ``(bits - 1) - n``에서 가져옵니다. 여기서 비트는 ``value``를 나타내는 데 사용되는 총 비트 수입니다.

:

비트를 반전시킬 값입니다.

return:

``value``이지만 비트가 반전되었습니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/bitfieldReverse.xhtml


vec_int_type bitCount(vec_int_type 값) 🔗

vec_uint_type bitCount(vec_uint_type 값) 🔗

Component-wise Function.

정수에서 1비트의 개수를 셉니다.

:

적어 놓을 만한 사항들이 있습니다:

return:

``value``의 이진 표현에서 1로 설정된 비트 수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/bitCount.xhtml


vec_int_type findLSB(vec_int_type 값) 🔗

vec_uint_type findLSB(vec_uint_type 값) 🔗

Component-wise Function.

``1``로 설정된 최하위 비트의 인덱스를 찾습니다.

참고

``value``가 0이면 ``-1``가 반환됩니다.

:

스캔할 비트의 값입니다.

return:

value의 이진 표현에서 1로 설정된 최하위 비트의 비트 번호입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/findLSB.xhtml


vec_int_type findMSB(vec_int_type 값) 🔗

vec_uint_type findMSB(vec_uint_type 값) 🔗

Component-wise Function.

1로 설정된 최상위 비트의 인덱스를 찾습니다.

참고

부호 있는 정수 유형의 경우 부호 비트를 먼저 확인한 다음 다음을 수행합니다.
  • 양의 정수의 경우 결과는 1로 설정된 최상위 비트의 비트 번호가 됩니다.

  • 음의 정수의 경우 결과는 0으로 설정된 최상위 비트의 비트 번호가 됩니다.

참고

값이 0이거나 음수 1이면 -1이 반환됩니다.

:

스캔할 비트의 값입니다.

return:

value의 이진 표현에서 1로 설정된 최상위 비트의 비트 번호입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/findMSB.xhtml


void imulExtended(vec_int_type x, vec_int_type y, 출력 vec_int_type msb, 출력 vec_int_type lsb) 🔗

Component-wise Function.

32비트 x 32비트 부호 있는 곱셈을 수행하여 64비트 결과를 생성합니다.

이 곱의 최하위 32비트는 ``lsb``로 반환되고 최상위 32비트는 ``msb``로 반환됩니다.

매개변수 x:

최종 결과물

매개변수 y:

행렬 곱

매개변수 msb:

제품의 가장 중요한 단어를 입력받는 변수입니다.

매개변수 lsb:

제품의 최하위 단어를 입력받는 변수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/umulExtended.xhtml


void umulExtended(vec_uint_type x, vec_uint_type y, 출력 vec_uint_type msb, 출력 vec_uint_type lsb) 🔗

Component-wise Function.

32비트 x 32비트 부호 없는 곱셈을 수행하여 64비트 결과를 생성합니다.

이 곱의 최하위 32비트는 ``lsb``로 반환되고 최상위 32비트는 ``msb``로 반환됩니다.

매개변수 x:

최종 결과물

매개변수 y:

행렬 곱

매개변수 msb:

제품의 가장 중요한 단어를 입력받는 변수입니다.

매개변수 lsb:

제품의 최하위 단어를 입력받는 변수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/umulExtended.xhtml


vec_uint_type uaddCarry(vec_uint_type x, vec_uint_type y, 출력 vec_uint_type 캐리) 🔗

Component-wise Function.

Add unsigned integers and generate carry.

두 개의 32비트 부호 없는 정수 변수(스칼라 또는 벡터)를 추가하고 캐리 출력과 함께 32비트 부호 없는 정수 결과를 생성합니다. 캐리 값은 입니다.

매개변수 x:

최종 결과물

매개변수 y:

최종 결과물

매개변수 캐리:

합계가 2:sup:`32`보다 작으면 0이고, 그렇지 않으면 1입니다.

return:

(x + y) % 2^32.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/uaddCarry.xhtml


vec_uint_type usubBorrow(vec_uint_type x, vec_uint_type y, 출력 vec_uint_type 빌림) 🔗

Component-wise Function.

부호 없는 정수를 빼고 빌림을 생성합니다.

매개변수 x:

최종 결과물

매개변수 y:

최종 결과물

매개변수 차용:

x >= y``이면 ``0, 그렇지 않으면 ``1``입니다.

return:

음수가 아닌 경우 x``y``의 차이, 그렇지 않은 경우 2:sup:`32`에 해당 차이를 더한 값입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/usubBorrow.xhtml


vec_type ldexp(vec_type x, 출력 vec_int_type exp) 🔗

Component-wise Function.

값과 지수에서 부동 소수점 숫자를 조합합니다.

경고

이 곱이 부동 소수점 유형으로 표현하기에는 너무 크면 결과가 정의되지 않습니다.

매개변수 x:

유효숫자의 소스로 사용되는 값입니다.

매개변수 특급:

지수 소스로 사용할 값입니다.

return:

그룹 노드

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/ldexp.xhtml


vec_type frexp(vec_type x, 출력 vec_int_type exp) 🔗

Component-wise Function.

다음과 같이 x``를 ``[0.5, 1.0) 범위와 2의 정수 지수의 부동 소수점 유효 숫자로 추출합니다.

x = significand * 2 ^ exponent

부동 소수점 값이 0인 경우 유효 숫자와 지수는 모두 0입니다.

경고

무한대 또는 부동 소수점 NaN인 부동 소수점 값의 경우 결과는 정의되지 않습니다.

매개변수 x:

유효숫자와 지수를 추출할 값입니다.

매개변수 특급:

``x``의 지수를 배치할 변수입니다.

return:

``x``의 유효수입니다.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/frexp.xhtml