WGSL Syntax

pixgram·2023년 5월 19일
0

Function

파라미터와 리턴값이 없는 경우.

fn f() {
  // function body
}

파라미터가 있을 경우.

fn f(a : vec4f, b : i32) {
  // function body
}

리턴값이 있을 경우.

fn f() -> i32 {
  return 42;
}

파라미터와 리턴값이 있을 경우.

fn f(v : vec3f) -> vec3f {
  return -v;
}

Function Calls

직접이든 간접이든 자기자신을 호출할 수 없다.

fn a() {
  a(); // error
}
fn a() {
  b(); // error
}
fn b() {
  a(); // error
}

선언전에 호출되어도 된다.

fn a() {
  b(); // ok
}
fn b() {
  // function body...
}

타입

scalar type

int -> i32
uint -> u23
float -> f32
double -> N/A

matrix type

mat2 -> mat2x2<f32>
mat3x2 -> mat3x2<f32>
mat4x2 -> mat4x2<f32>
mat2x3 -> mat2x3<f32>
mat3 -> mat3x3<f32>
mat4x3 -> mat4x3<f32>
mat2x4 -> mat2x4<f32>
mat3x4 -> mat3x4<f32>
mat4 -> mat4x4<f32>

loop

int a = 2;
for (int i = 0; i < 4; i++) {
   a *= 2;
}                        
var a: i32 = 2;
var i: i32 = 0;
loop {
  if i >=4 { break; }
  a = a * 2;
  i++;
}
profile
Interactive Front-end Developer and WebGL Artist

0개의 댓글