效果图
前期的准备:各种 SDF 函数
// --------SDF--------
float sdPlane(vec3 p)
{
return p.y;
}
float sdSphere(vec3 p, float s)
{
return length(p) - s;
}
float sdBox(vec3 p, vec3 b)
{
vec3 d = abs(p) - b;
return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));
}
float sdEllipsoid( in vec3 p, in vec3 r )
{
return (length( p / r ) - 1.0) * min(min(r.x, r.y), r.z);
}
float udRoundBox(vec3 p, vec3 b, float r)
{
return length(max(abs(p)

这篇博客介绍了使用GLSL和Raymarching技术实现多物体的3D图形渲染,包括SDF函数、物体组合、Raymarching算法、3D坐标和法线可视化、软阴影以及抗锯齿效果。通过详细的代码和算法注释,展示了如何构建场景、计算光照和实现更真实的阴影效果。
订阅专栏 解锁全文
4399

被折叠的 条评论
为什么被折叠?



