remove 1/4 sphere volume with VEX code

   2129   5   0
User Avatar
Member
10 posts
Joined: 5月 2020
Offline
Hello,

I preciously cut my sphere volume in half and let one half disappear using Vexpression like “f@density *= v@P.x<0”, but what if I want its 1/4 to be removed?
I tried to use expression like “f@density -= f@density *v@P.z<0 *v@P.x<0;”, but it did not work at all.
Hope someone can provide another way, thanks!

Attachments:
Screenshot (84).png (779.2 KB)

User Avatar
Member
1736 posts
Joined: 5月 2006
Offline
One of no doubt many ways:

if (@P.z>0 && @P.y>0){
    @density*=1;
} else {
    @density=0;
}

Attachments:
Selection_186.png (37.1 KB)

http://www.tokeru.com/cgwiki [www.tokeru.com]
https://www.patreon.com/mattestela [www.patreon.com]
User Avatar
Member
10 posts
Joined: 5月 2020
Offline
mestela
One of no doubt many ways:

if (@P.z>0 && @P.y>0){
    @density*=1;
} else {
    @density=0;
}

Thanks so much!
I remembered I tried this logic before, my syntax might be wrong
User Avatar
Member
670 posts
Joined: 9月 2013
Offline
f@density *= length(v@P) < 0.4;            // sphere, radius 0.4
f@density *= max(abs(v@P)) < 0.4;          // cube, size 0.4
f@density *= abs(v@P.y) < 0.04;            // plane, thickness 0.04
f@density *= length(v@P * {1,0,1}) < 0.1;  // cylinder, radius 0.1

f@density *= v@P.y > 0.0;                  // top half
f@density *= min(v@P.y, v@P.x) > 0;        // one quarter
f@density *= max(v@P.y, v@P.x) > 0;        // three quarter
f@density *= avg(v@P.y, v@P.x) > 0;        // diagonal half
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
User Avatar
Member
1736 posts
Joined: 5月 2006
Offline
Show off.
http://www.tokeru.com/cgwiki [www.tokeru.com]
https://www.patreon.com/mattestela [www.patreon.com]
User Avatar
Member
670 posts
Joined: 9月 2013
Offline
I know I just overdelivered a little bit. Guess I just couldn't help myself.
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
  • Quick Links