Demo1:http://www.artvily.com/sample?sample=sdfStep08Transform

Demo2:http://www.artvily.com/sample?sample=sdfStep07

Thanks very much: https://www.shadertoy.com/view/4tcGDr

下面是欧拉角形式的旋转代码:


void rotateEuler(float radX,float radY,float radZ, inout vec3 pos) {    
    // rot y
    float c = cos(radY);
    float s = sin(radY);
    mat3 m3 = mat3(
        vec3(c, 0, s),
        vec3(0, 1, 0),
        vec3(-s, 0, c)
    );
    pos = m3 * pos;
    // rot x
    c = cos(radX);
    s = sin(radX);
    m3[0] = vec3(1, 0, 0);
    m3[1] = vec3(0, c, -s);
    m3[2] = vec3(0, s, c);
    pos = m3 * pos;
    // rot z
    c = cos(radZ);
    s = sin(radZ);
    m3[0] = vec3(c, -s, 0);
    m3[1] = vec3(s, c, 0);
    m3[2] = vec3(0, 0, 1);
    pos = m3 * pos;
}

效果预览图:

SDF(Signed-distance-field: 有向距离场)(4): 缩放-旋转-平移(源码和Demo)

SDF(Signed-distance-field: 有向距离场)(4): 缩放-旋转-平移(源码和Demo)

Demo1 的运动轨迹是两个不同参数的球面坐标空间运动轨迹的合

相关文章:

  • 2021-10-20
  • 2021-12-16
  • 2021-10-31
  • 2021-06-24
  • 2021-06-17
  • 2021-11-13
猜你喜欢
  • 2022-03-06
  • 2022-02-27
  • 2021-11-27
  • 2021-10-31
  • 2021-07-21
  • 2021-10-18
相关资源
相似解决方案