1. 程式人生 > >glsl 進階學習2

glsl 進階學習2

關於求一個盒子  p=point  c=center s=size d=distance  

float box(p,c,s){    vec3 ans=abs(p-c); 這樣求出這個點到中心的距離  ans-=s;這樣算出了x y z三個面跟size的比較 在內部就都<0

float d=max(  max(ans.x,ans.y),ans.z; 有一個大於0了就沒在盒子裡了  所以只需要求最大值就好了}

 

求一個的話 就是  r=radius    distance(p,c)-r就是球了吧。。小於半徑就是在球內部

 

補充一下。。p-c得到的距離跟size比較這裡  p在點c後面 點c前面 都會比較一次 相當於我們其實畫了兩個部分拼起來的