Creating Procedural Textures for an Underwater Environment
- Ben Wilson
- Jan 16
- 3 min read
Updated: Jan 24
While creating the background scene for a project set in the ocean I had to create procedural textures to help colour the vibrant underwater world of coral, kelp, and fish.
About the Project
The project was about creating serious games, for this we developed a game called Plenty More Fish in the Sea in which you play as a fisher that must meet the ever-increasing quota set by your employer.
The games themes surround capitalism, over-consumption, and environmentalism with the player initially being unaware of these themes and slowly discovering them through the game's mechanics and art.
Link to the game page so you can try it yourself!
The Art!
Part of the visual progression of the game happens as the player continues to increase the number of fish they are catching. This will cause the ecosystem to slowly degrade, the colours in the environment becoming less vibrant and the coral becoming bleached.
Using procedural textures means I can easily change the colours and properties of the objects in the environment to fit in with the games progression.
The final environments showing coral bleaching and fish dissapearing
Creating Kelp

The long strands of kelp were made using arrays of a single section following a curve.
To achieve the organic, flowing shapes of the leaves underwater I used a cloth modifier. Anchoring their bases to the kelp stem and blowing wind to simulate the water currents.
Once the first section was complete I could just add array and curve modifiers to it, which when paired with a bezier curve, create a long strand of kelp sections following its shape.

Recreating Rock
To help make the rocks I followed parts of a tutorial by SouthernShotty which taught me some new techniques.

Using multiple ambient occlusions and colour ramps to get edge highlights on a model
Creating indents with voronoi textures, using a noise texture as a mask to add imperfections
Adding extra details with wave textures and colour ramps
Changing the roughness using the values of a colour ramp
Using textures for height displacement to give more depth to the objects
Combing these effects using different mix settings to achieve cohesive displacement, roughness and colours.
I also added a mask within the texture, allowing me to draw the moss on top of the rocks in texture paint.

Colouring Coral
In this section I'll be referring to the corals as trumpet, tentacle, brain, and plate coral respectively to make things easier!
After texturing the rocks I transferred some of the techniques into creating the coral. The trumpet, tentacle, and plate corals all use the edge highlight technique to make them pop, with all of them using the technique the textures as height displacements.
The trumpet coral uses the same indent technique as the rocks to get its spots.
The tentacle coral has a simple noise texture leading to colour ramp to get its different values, this is then mixed with a gradient texture to give it some more shadows.
The brain coral uses a very distorted noise texture mixed with an RGB to get its effect.
The plate coral uses a wave texture to get its appearance.

Shaping Sand
To help make the sand I followed a tutorial by Ryan King Art, this again used similar techniques and textures but showed me new ways of combining them.

For example again I used a voronoi texture with a noise texture as a mask to add imperfections, however it was used differently to create small rocks in the sand.
I used the distance to edge setting on the voronoi for sharp angles. Instead of using the noise texture to add imperfections I combined it with a colour ramp and mixed it using the factor input to allow the voronoi to pass through only at certain points.

Conclusion
Overall the project was really fun and I learnt a lot throughout its development. The approach of using procedural textures made the process of creating the different renders much more streamlined.

These were my key takeaways from the project
Mixing noise textures can be used to make unique and natural looking patterns and shapes for procedural textures.
Using noise textures as masks is a great tool when you need to create imperfections on a surface.
Procedural textures are very helpful when constructing larger or densely populated environments containing lots of assets.
Procedural textures allow easy iteration between designs, layouts, and colour schemes for individual models or environments overall.
Contact Me!
Please feel free to contact me if you have any questions about the project or if you just want to say hi :)
Comments