Showing posts with label environment. Show all posts
Showing posts with label environment. Show all posts

Sunday, April 25, 2021

3D Art II: Module Four Week Fifteen

 Game Resolution, UVs, First Bake

I had to play catch-up this week, since I was going to pivot from the water shader and tech art stuff to make a custom fish for the fish school, so that the model fit the art style better. I used some concept art for World of Warcraft to work from. I did the catfish, bottom right.

I took a rough box-modeled mesh I made in Maya to establish shape and scale and brought it into ZBrush. Since we're aiming for Michael Vicente/Orb/Blizzard style assets, I used his brush pack, mostly Orb_Cracks2 and the Flatten_EdgeProtect brush. I tried to use the flatten brush on edges on the surface, since a lot of Michael Vicente's work looks like it has this really thin bevel along any area that would come to a really sharp edge.




For retopology, I got it to around 5.2k tris. I may add a few more around the fins, since I ran into some issues in the first bake in those areas.





First bake:





Initial textures:




In engine:



I'd like to keep working on the textures and make a few more masks for the fins to see what kind of movement I can get. I'd also like to try to make some color variations for the fish school, which I may be able to do through the material instead of making a unique map.

Monday, April 19, 2021

3D Art II: Module Four Week Fourteen

 Part II: Adding Stuff Underwater



For this part of the module, I took some ideas from Ghislain Girardot's video that Nick showed us, and tried to add some underwater elements and give them a little life. 

Fish

For the fish, I found a really helpful tutorial on Youtube about how to get a static mesh to follow along a spline. It uses a Timeline to make a float track, and uses that to map the length of the spline from 0 to 1, and update the location and rotation of the fish along the spline.



I also wanted the fish to move up/down/side to side, but I wasn't sure how to get that to happen while still having the fish follow the spline, since their location is updated every tick to be on the spline. Instead, I used the World Position offset channel in the fish material to give the appearance of movement. It uses Time, a Sine node, and a vector parameter, which is then multiplied by either red, green, or blue to assign it to the x, y, or z axis respectively.

RotateAboutWorldAxis_cheap node to make the fins flap a little, masking the front of the fish's body and leaving the back half to be rotated along the z-axis.











Seaweed

The seaweed also uses its material to simulate movement. It uses two nodes, a RadialGradientExponential node and a SimpleGrassWind node. The RadialGradientExponential node is used to mask the very bottom of the blades of seaweed so that it's not moving at its root. The SimpleGrassWind node actually moves the seaweed.


The meshes for the fish and the seaweed aren't mine, and came from Sketchfab.

Edge Foam

I updated the edge foam to also try to mimic what Ghislain did, but I'm not sure I like it better than the old edge foam.

Instead of using a Noise node, it uses a tileable texture map, and uses the DistanceFieldGradient node and the DistanceToNearestSurface node like the old set-up did, but in this case it uses it to pan the texture.



I think I might revert it to the old edge foam set-up, but I'm not sure.

Monday, April 5, 2021

3D Art II: Module Four Week Twelve

 Part I: Water Shader Set-Up



There ended up being tons of really helpful resources for making stylized or simple water shaders. I did bring Adam Homoki's really complicated cartoon shader into the project and took some elements from his set-up, including his math for the Gerstner waves/world displacement, plus a few texture maps and material functions.



World Displacement

This uses the Cartoon water shader's Gerstner waves to calculate world displacement. It's a lot of math and cosine stuff that I don't fully understand, but I think it adds a lot of dynamism to the shore since it creates a more radically different surface than just a sine function.





Base Color with Depth Fade

I watched a YouTube video that used depth fade, and thought it would be useful in transitioning the ocean and the shore. It uses a blend overlay node and lerps using a depth fade node as a mask.



Fresnel Color Transition

This creates a change in color for distant water based on the viewing angle and makes the water a little less flat-looking.

Normals

Something else I took from Adam Homoki's shader: his normal blend material functions and normal maps. I could probably honestly do without them and use a simpler normal set-up if I needed to.



Edge Foam

This I got from a nice and simple YouTube video Nick shared. It needs Distance Fields turned on in the Project settings, since it uses those to judge where to generate noise.



Roughness

Played around with this quality, just trying to make the sun shining on the water surface a little less weird-looking. It uses a fresnel, and I'd like to work on the transition a little, although the hard edges might contribute to the stylized look since it makes it look a little cel-shaded.

Edge Fade

Uses the same node as the edge foam to soften the transition between the island and water. The issue is that it also does it for any objects that may be floating in the water, and you can see down below the water plane.



Sea Foam

These maps were taken from Adam Homoki's shader. It looks at the world position to tell the height of a wave, and if the wave is high enough, it applies the sea foam mask.



Foam Sparklies

This is an emissive quality that uses the same mask the sea foam uses to limit the location of the shiny bits. The two maps pan, and whenever their pure-white spots overlap, the If node lets it through and it comes out as an emissive spot.