wndyddl3 Posted November 24, 2020 Share Posted November 24, 2020 (edited) Hi folks, I am a beginner and interested in 3D environment. I would like to create a scene that kind of shape that soft and marble geometry But I don't know what kind of ways should I do for the scene. Could you please recommend some way to get there Edited November 24, 2020 by wndyddl3 Edit title, added reference, grammar correct Quote Link to comment Share on other sites More sharing options...
Librarian Posted November 26, 2020 Share Posted November 26, 2020 @wndyddl3 Try This you have endless control. Than search how to make 2d fluid with Gas-solvers in Houdini and for the first you have Terrain Master Class in Houdini .And if you search on google you gonna find vex shaders /assets that you only need to copy paste ..plus you have that in ODForce forum already ,search Investigate share your Result .Have Fun #define PI 3.1415926535897931 #pragma label Theta "Maximum Theta" #pragma label spread "Overall Spread" #pragma label DATA "Data Points" #pragma label kd "Diffuse" #pragma label ks "Specular" #pragma label bump "Bump" surface qrotation_field ( float Theta = 2.0, spread = 3, kd = 1, ks = 0.5, bump = 0.1; string DATA = "$HIP/../VEX/Reading-Data-Points/_datapoints1.bgeo.sc") { float d, Np, theta, pFratt, factor, pspread; vector _P, pP, axis, pVratt; vector4 Q; string group; _P = ptransform("space:camera", "space:world", P); theta = snoise(_P + 0.9, 1, 0.75, 1)*4.5; axis = snoise(_P + 0.05, 1, 0.05, 1); Q = quaternion(theta, axis); _P = qrotate(Q, _P); for(int g = 0; g < 2; g++){ group = concat("group", itoa(g)); int p[] = expandpointgroup(DATA, group); Np = len(p); factor = g + 1; for (int i = 0; i < Np; i++){ pP = point(DATA, "P", p[i]); axis = point(DATA, "N", p[i]); pFratt = point(DATA, "fratt", p[i]); pVratt = point(DATA, "vratt", p[i]); pspread = pFratt*spread/factor; d = distance2(pP, _P); d = exp(-d*d/pspread); theta = 2*PI*(pFratt*2 - 1)*d*Theta/factor; Q = quaternion(theta, axis); _P = qrotate(Q, _P - pP) + pP; } } vector outColor = snoise(_P*0.25, 1, 0.25, 1); vector Nn = normalize(computenormal(P + min(outColor)*bump, N, Ng)); vector diff = diffuse(Nn)*outColor*dot(normalize(-I), N); vector spec = specular(Nn, normalize(-I), fit01(min(outColor), 0.5, 0.1))*0.1; spec += specular(N, normalize(-I), 0.05); Cf = diff*kd + spec*ks; } 1 Quote Link to comment Share on other sites More sharing options...
CinnamonMetal Posted December 12, 2020 Share Posted December 12, 2020 It's not exact what he posted, it's not blue and white. 1 Quote Link to comment Share on other sites More sharing options...
Librarian Posted December 12, 2020 Share Posted December 12, 2020 Metal Quote Link to comment Share on other sites More sharing options...
Librarian Posted January 23, 2021 Share Posted January 23, 2021 @wndyddl3 More Variations with this One.. I learn and share have fun DispMap.hiplc 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.