init
This commit is contained in:
commit
87bff164f1
416 files changed
+279512
No files matched your search
@@ -0,0 +1,15 @@
|
||||
// Same half-cell samples and last-free result as the engine's CPU raytrace.
|
||||
// ngp_solid_at supplies terrain only; rigid bodies are outside this API.
|
||||
bool ngp_solid_at(vec2 position);
|
||||
vec3 ngp_surface(vec2 start, vec2 end) {
|
||||
float distance=length(end-start);
|
||||
if(isnan(distance)||isinf(distance)||distance>512.0) return vec3(start, -1.0);
|
||||
int steps=max(1,int(ceil(distance*2.0)));
|
||||
vec2 previous=start;
|
||||
for(int k=1;k<=steps;++k) {
|
||||
vec2 point=start+(end-start)*float(k)/float(steps);
|
||||
if(ngp_solid_at(point))return vec3(previous,1.0);
|
||||
previous=point;
|
||||
}
|
||||
return vec3(end,0.0);
|
||||
}
|
||||
Reference in new issue
Block a user