
最近体验了VIBE CODING
做了个webgpu的仿cycles的demo
pingpong + bvh + software pathtracing + textureArray< atlas > 非常有趣(:
并且经过验证 AI可以直接写wgsl shader
clike
const rayAABBIntersectFn = wgslFn(`
fn rayAABBIntersect(
rayOrigin: vec3f,
rayDir: vec3f,
rayInvDir: vec3f,
aabbMin: vec3f,
aabbMax: vec3f
) -> bool {
// Expand AABB to handle triangles that span across split planes
// Must match epsilon used in BVH construction
let epsilon = 0.01;
let expandedMin = aabbMin - vec3f(epsilon);
let expandedMax = aabbMax + vec3f(epsilon);
let t1 = (expandedMin - rayOrigin) * rayInvDir;
let t2 = (expandedMax - rayOrigin) * rayInvDir;
let tmin = min(t1, t2);
let tmax = max(t1, t2);
let tNear = max(max(tmin.x, tmin.y), tmin.z);
let tFar = min(min(tmax.x, tmax.y), tmax.z);
return tNear <= tFar && tFar > 0.001;
}
`);
由于工作是2D,可能下一步要玩的就是vector font了