Games101学习笔记三(几何)

表达几何有非常多的方式,每种方法都有其特定的应用场合,没有最优的,只有合适的。

在这里插入图片描述

Implicit Surface

  • 采样会变得困难
  • 但是Inside和Outside测试将会变得非常容易

在这里插入图片描述

Explicit Surface

  • 采样会变得容易
  • Inside/Outside测试会变得很困难

在这里插入图片描述在这里插入图片描述

Algebraic Surfaces (Implicit)

在这里插入图片描述

Constructive Solid Geometry (Implicit)

在这里插入图片描述

Distance Functions (Implicit)

在这里插入图片描述注意距离场的定义:
从任意位置到对象的最短距离(可以是带符号的距离)

Distance Functions (Implicit)

距离场的融合

在这里插入图片描述
可以参考这篇文章的SDF混合思路,可以做出Organic的效果 https://www.jcohen.name/papers/Ferreira_Levelsets_2007.pdf

关于SDF的简单效果可以看我实现的ShaderToy https://www.shadertoy.com/view/ttcyWB

//******************************Soft Blend*****************************
// https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
float opSmoothUnion( float d1, float d2, float k ) {
    float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );
    return mix( d2, d1, h ) - k*h*(1.0-h); }

float opSmoothSubtraction( float d1, float d2, float k ) {
    float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );
    return mix( d2, -d1, h ) + k*h*(1.0-h); }

float opSmoothIntersection( float d1, float d2, float k ) {
    float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );
    return mix( d2, d1, h ) + k*h*(1.0-h); }
//*********************************************************************

贝塞尔曲线

在这里插入图片描述图为3阶贝塞尔曲线

在这里插入图片描述贝塞尔曲线的代数形式

在这里插入图片描述
因为计算高阶贝塞尔曲线会比较费,而 Piecewise cubic Bezier 则是使用贝塞尔曲线的一般形式
在这里插入图片描述 C 0 C^0 C0 continuity: a n = b 0 a_n = b_0 an=b0

$C 1 1 1 continuity: a n = b 0 = 1 2 ( a n − 1 + b 1 ) a_n=b_0=\frac{1}{2}(a_{n-1}+b_{1}) an=b0=21(an1+b1)

贝塞尔曲面

贝塞尔曲面就跟 cubic 贝塞尔曲线一样,但是控制点就多了一个维度
在这里插入图片描述
在这里插入图片描述具体的实现如下
在这里插入图片描述

引用

[1]https://sites.cs.ucsb.edu/~lingqi/teaching/resources/

[2] https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值