#developing1
Explore tagged Tumblr posts
Text
Practice 1: Developing Skills
Developing 1
Reviews
During the entirety of my developing projects, I have been in contact with 2 graduates of the University of Hertfordshire who are working in esteemed game companies. They are Alex Jerjomin and Harry Biggs and they both have been super helpful with advising me on the proper techniques, critiquing my works and giving reviews about the overall project.
Figure 1 (Reviews #1 by Alex Jerjomin)
Figure 2 (Reviews #2 by Alex Jerjomin)
Figure 3 (Reviews #1 by Harry Biggs)
Figure 4 (Reviews #2 by Harry Biggs)
They really did analyze my work professionally, giving me constructive criticism and praising me where needed which was really motivating for me to further improve my craft and sink my teeth a bit deeper into creating 3D Artefacts.
Conclusion
Figure 5 (Final turntable animation)
This developing project has really helped me a lot personally as I was always scared when trying to tackle new software which was outside my comfort zone. I would always get intimidated by the big node structure in Designer when reviewing professional works, so this has really propelled me forward.
I managed to capture my vision of using a professional structured pipeline to creating the painterly tileable textures. I first started my research online and grabbed a few works that caught my eye. I chose one which I wanted to try emulate and set off on creating a custom ZBrush sculpted height map for the tiles. I then used the same height map to build the entire texture maps around it procedurally. Finally, we concluded by repacking everything and rendering it out wonderfully.
I do believe I could have maybe increased the variety of cracks when sculpting it out in ZBrush, this would further eliminate the repetition tiling issue. However, the turntable render turned out really good and organic and I am happy with what I have achieved. I would like to thank Neil Gallagher for this wonderful opportunity that helped me showcase my skillset and work on where improvement is needed.
After having concluded the first developing assignment, I now turn my attention to the second developing assignment.
Figure 6 (Stylized stone texture, (Harrington, 2018))
Figure 7 (Stylized slab texture, (Thiger, 2019))
REFERENCES
Harrington, A., 2018. ArtStation. [Online] Available at: https://www.artstation.com/artwork/y5XYK [Accessed 09 January 2025].
Thiger, D., 2019. ArtStation. [Online] Available at: https://www.artstation.com/artwork/oOBWPm [Accessed 09 January 2025].
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 5)
To see how the render pans out in Marmoset, we need a primitive like a cube, a sphere or a cylinder to see how it works with real time lighting.
For the render, I decided to go with a cylinder primitive. I created a new substance graph in Substance Designer.
Figure 1 (New Substance Graph)
I added a rounded cylinder to the new graph. This cylinder is smooth and subdivided and you can view the textures properly when the lighting interacts with it.
Figure 2 (Rounded Cylinder)
I then open a new file in Marmoset and import the cylinder export in a new scene and I save the document.
Figure 3 (Importing cylinder into Marmoset)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 5)
This is going to be a short update. Here, I just show my progress on how I export the tileable textures to be used in Marmoset as my final render.
If you have the 3D view enabled in the viewport, you can see how all of the textures interact with each other. By that, I mean the normals, the roughness and the base color along with the occlusion. Here, I am using a cube which has all of the textures plugged in so that I can see how it looks.
Figure 1 (Final view of the textures)
You can export the textures to your desired folder. I had created one in advance so that I avoid any confusion.
Figure 2 (Exporting the textures)
Figure 3 (Assigning the color spaces)
Also, one last thing to note, whenever exporting an ORM or an ORD map, change the color spaces of those maps to sRGB instead of Raw otherwise, you will get complications further down the line when actually using those textures and assigning them to the models.
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 5)
We are nearing the end of the texturing part. There are still a couple of small steps that should be done before the textures can fully be exported as a tilable map.
First of all, we need to plug all of the data to its corresponding output. The output of the last 'HSL' node is plugged into the final base color node.
Figure 1 (Output base color node)
I plugged the entire outputs to its corresponding texture output node and arranged the nodes so that it is comprehensible to someone seeing it. It is still disorienting to look at but this was the best I could arrange it.
Figure 2 (Final node setup)
In the Properties tab, I assign the textures to their corresponding slots so that it reads the final output textures, comprising of base color, normal, roughness, ambient occlusion and so on.
Figure 2 (Properties and assigning textures)
I decided to create an ORM and an ORD map. This is mostly common in gaming industry where they pack either the occlusion, roughness and metallic or the occlusion, roughness and displacement maps together so that it is easy to plug maps from the same package together.
It is really simple to create an ORM or an ORD map. In Substance Designer, you do this by adding a 'RGBA Merge' where you can plug all the maps you want into each R, G and B channels.
Figure 3 (RGBA Merge node)
Figure 4 (Assigning textures to the RGBA Merge)
Also, whenever creating an ORM or an ORD map, you should always make sure to plug in a uniform white color as a base node to the alpha unless of course, you do create an alpha as well in which case, you just plug your alpha map to the alpha node channel in the RGBA Merge.
Once I finished packing my ORD and ORM maps, I save the document so that I could export the textures the next day. At this stage, I go over through the entire node setup, seeing where I can modify or improve upon the painterly effects we created.
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 4)
I wanted to also add small caved one sided holes to further strengthen the stylized texture effect. This was a bit confusing to navigate around so I employed a trick.
The trick was to use a tile generator that was fed an elliptical shape. I could then decrease the scale and randomize the seed while offsetting its position.
Figure 1 (Tile Generator)
Any shapes can be used for the tile generator but since we are focused on creating stylized caved in one sided holes, I decided to go with a spherical/elliptical shape. You can then plug it into the blend to see how to combines together.
Figure 2 (Small holes in the blend node)
The values of scale and scale random is manipulated and its offset so that it introduces a variety of small holes that are all unique to each other when seen in the final texture blend.
Figure 3 (Manipulating the holes' attributes)
Once I finish with the hole details, I go back to the base color texture and use a variety of different nodes to control its color more precisely. I used a 'Contrast/Luminosity' and a 'HSL' node.
Figure 4 (Controlling the Contrast and Luminosity)
Figure 5 (Manipulating the Hue, Saturation and Lightness of the color)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 4)
This week was a bit busier as I was working simultaneously on both developing assignments and it was kind of confusing to balance between the two. For this brief, I worked on adding a grunge to the overall texture of the base color.
I duplicate the previous setup of a paraboloid shape blended with a crystal grunge and added a tile sampler node which would be used as the crux for the overall grunge of the tile.
Figure 1 (Duplicated setup fed into a tile sampler node)
I added a directional warp to the setup and blended it together to create a grunge alpha. I then assigned a gradient color node to the output to get a base color for the grunge.
Figure 2 (Directional Warp)
Figure 3 (Grunge noise color)
I also set the blending mode of the gradient color to an 'Overlay' mode to give it a more lighter look.
Figure 4 (Overlay mode)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 4)
Now, I work on the base color of the texture, which could prove to be challenging. I think everyone would find it more simpler if they arrange their nodes properly otherwise it becomes a big mess at the end.
I use a gradient color to assign the blueish grayish tone to the slab. The RGB editor is attached below.
Figure 1 (RGB Gradient Editor)
Now, as I have assigned color to the stone slab, I work on the outer edge grunge noise which is similar to the way I created the mud curvature. I used an inverted curvature node which was plugged into a histogram scan so I can precisely analyze the curvature values in the node.
Figure 2 (Histogram scan of the inverted curvature node)
In the 'Instance Parameters' tab, if you manipulate the position and the contrast values of the scan, you can increase or decrease the level of inverted curvature to the texture.
I increase the value of the position and curvature so that I get a denser curvature. This curvature is then blended with a color node so I can assign a gradient to the edge curvature of the tiles.
Figure 3 (Curvature values)
Figure 4 (Outer grunge gradient color)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 3)
To control the levels of the blended node, I plug the 'Blend' node to a 'Levels' node which allows me to manipulate the markers to control the levels of the output.
Figure 1 (Levels node)
As I finished the roughness for the texture, I plugged the texture straight into the roughness and the ambient occlusion straight into its output channel.
I also add a new 'Normal Sobel' node that is plugged into the normal output. The reason for this is simply to add any changes or nodes in between the final link so that it gets reflected in the final output.
Figure 2 (Normal Output)
Figure 3 (Creating noise for the texture)
From here on out, it gets more confusing even for me, as from here on out, I was randomly experimenting with different noise nodes and different masks and applying it to each other to get a suitable noise or grunge so to speak.
Just to simplify what I am doing, I added a 'Perlin Noise' node which is plugged into the 'Levels' node which controls the level of the noise node. I then add a 'Clouds 2' noise node which is blended with the output of the levels node to a 'Slope Blur Grayscale' to a further 'Blur HQ Grayscale' which makes the noise blurry so that it is really not sharp and distracting to the human eye.
To add distinct shapes to the noise so that it appears more shaped and unique, I added a 'Shape' node with a Paraboloid pattern which provides more freedom when I manipulate its properties. I then use the shape node and mix it to a 'Slope Blur Grayscale' node with a 'Crystal 2' noise which has a crystal shaped noise which you can manipulate further.
Figure 4 (Paraboloid Shape for the noise)
Figure 5 (Slope Blur Grayscale)
I prefer a slope blur more over a simple blur because the slope blur blurs the noise in a slope and when mixed with some of the noises can provided a painted grunge effect. I believe you can also find this in the Substance Painter as a generator where you can use 'Slope Blur' to create a blurry painted grunge with different colors or masks.
I now move onto creating the color for the mud which uses the similar method in using the 'Height to Normal World' and inverting and smoothening the curvature and assigning the color of a mud. This is done after plugging it into a 'Slope Blur Grayscale' node so that the mud or the dirt looks grungy and painted.
Figure 6 (Height to Normal World)
Figure 7 (Slope Blur Grayscale node)
Figure 8 (Inverting the Grayscale and blending it with a color node)
Once you invert the histogram scan of the curvature of the height map and blend it with a color node, you can apply the color of the dirt. It is still a confusing process for me but nonetheless, a rewarding one indeed.
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 3)
I added a 'Height to Normal' map to the initial 'Auto Levels' map. I also plugged in a 'Blur HQ Grayscale' map in between the height map and the 'Auto Levels' map and blurred the initial height map with a very low intensity value so it doesn't look very sharp.
Figure 1 (Adding a 'Blur HQ Grayscale' map)
Figure 2 (Adding a 'Height to Normal' map)
To smoothen the edges of the normal map by a bit, I plugged the 'Normal Sobel' map to a 'Curvature Smooth' map. I also employed a trick to accurately judge the ambient occlusion of the map. I employed an 'Invert Grayscale' map that inverts the black and white channels and plugged it into a 'Histogram Scan' map. The histogram scan map represents the tones present in the map and that can be used with other maps and manipulated precisely.
Figure 3 (Smoothing the curvature of the 'Normal Sobel' map)
Figure 4 (Inverting the channels of the occlusion and plugging it into a 'Histogram Scan' map)
When the scan map gets updated after manipulating the parameters like the position and the contrast of the map, you can see the scan in the 'Histogram Scan' map.
Figure 5 (Updated scan map)
I inverted the channels of the curvature after it was smoothened out and blended the output and the scan map with a 'Blend' node.
Figure 6 (Outputs merged with a 'Blend' node)
I changed the blend mode to a 'Linear Dodge' channel to make the output more lighter and manipulated the opacity to a low value.
Figure 7 (Linear Dodge and low opacity)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 3)
I believe now I was getting into murky waters as I decided to create procedural textures in Designer which looked painted. I could have opted to use Substance Painter and painted the texture over the height map but I wanted to use Designer to its maximum capacity and try my hands on procedural textures with a painterly effect.
I created a new document with the Metallic Roughness template and a document size of 2048X2048 pixels as we created a height map from the sculpt with the same resolution.
Figure 1 (Creating a new document in Designer)
I linked the said exported height map to the document. I plugged the height map to a 'Auto Levels' channel and then further plugged it into a 'Ambient Occlusion' channel. This allows me to calculate the levels automatically and further manipulate its occlusion.
Figure 2 (Auto Levels and Ambient Occlusion mapping)
To also control the normal, I added a 'Normal Sobel' which was plugged after the 'Auto Levels' map.
Figure 3 (Normal Sobel mapping)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 2)
Now we arrive at the end of the sculpting process in ZBrush. Since we sculpted the stone and the mud, we now have the base color and the height map to play around with. But, before we can do that, we need to tile them properly so that we can export a 4X4 map that we can use to create painterly textures around.
You can use a more defined 16X16 or a 32X32 map to get more variety and details but since I also wanted to preserve the size of the tile maps, I decided to go with the 4X4 map.
I first resize the document size so that I can fully fit the 4X4 full screen to render it out. This can be done by resizing the document dimensions in the 'Document' tab.
Figure 1 (Document resizing)
I resized the document to 2048X2048 and fit the tiles to the new resized document. This allowed me to focus and fit the screen fully to the 4X4 tiles that we primarily focused on while sculpting.
Figure 2 (4X4 Tiling for the new resized document)
I assigned the alpha by getting a screengrab of the tiling and exported the said height map of the 4X4 tiling.
Figure 3 (Screengrab of the 4X4 height alpha)
Figure 4 (Final 2048X2048 export of the sculpted height map)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 2)
After I had finished creating 6 stylized tiles which included trimmed details, chippings and cracks, I decided to use those 6 tiles in a modular arrangement with the help of transformation so that the tiles would look organic and not repetitive.
Figure 1 (Arrangement of sculpted tiles)
I start deleting the non sculpted tiles, while duplicating the sculpted tiles and arranging them around while translating and rotating them to fill in the gap.
Figure 2 (Duplication of sculpted tiles)
Once the tiles are duplicated, I do a further adjusting to the basic orientation and it looks arranged organically and looks more fresh and not repetitive.
Figure 3 (Final Tiles Arrangement)
I did a bit of research into the painterly textures I wanted to emulate and it looks like it has a bit of dirt between the tile edges and holes. To recreate mud, I did a simple trick of duplicating the canvas and bringing it right below the tiles so that when I sculpt clay on top of it, it looks like dirt between the tiles.
Figure 4 (Duplicating the canvas and arranging it below the tiles)
I then used the default ClayBuildup brush to add clay detail to the canvas below and from there, I just sculpt over the dirt as much as I desire. However, since I don't want it to be the main focus of the asset, I only sculpt very little dirt on top of the tiles.
Figure 5 (Mud sculpting above tiles)
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 2)
For this week, I decided to further deepen the sculpting details on the already sculpted tiles. This would include details like chippings, smooth trimmed edges and cracks. To achieve this effect, I utilized the free Orb Brushes pack for ZBrush that one can easily download online.
I used the Orb Crack brush to add the cracks to the tiles. After adding the cracks, I used the Orb Flatten Edge Protect brush to smooth the cracks on the edge while protecting its initial depth. This provides a smooth crack with much less noise to notice.
Figure 1 (Adding cracks to the tile with a strong Z-Intensity value)
Figure 2 (Smoothing the cracks and adding a variety to the details)
If setup correctly, the sculpted details on this tile should equally reflect on the duplicated offset arrayed tile on both the X and Y axis as below.
Figure 3 (Reflection of sculpted details on the remaining tiles)
I repeat this process until the 6th tile which leaves 10 tiles since we are looking to extract a 4X4 height tile to plug it into Substance Designer. After completion of the sculpting, I saved my document and decided on how I would proceed forward.
1 note
·
View note
Text
Practice 1: Developing Skills
Developing 1 (Week 1)
I resume my sculpting process where I add little tiles and subdivide them and duplicate and arrange them accordingly. This allows me to create multiple sculpts with a single operation and then arranging it accordingly so that it looks more organic.
Figure 1 (Adding tiles to the canvas)
Figure 2 (Arranging the tiles in the canvas)
I then assign each tiles to a different polygroup. This allows me to work on the first 4X4 tiles and the changes made to those tiles are also seen in the offset tiles. After arranging the orientation of those tiles by a little, the entire tile structure looks more organic and not machine made that shows a bit of wear and tear.
Figure 3 (Assigning different polygroups)
Figure 4 (Rotating the tiles for an organic visual)
Now, I start the most fun process of the entire assignment, sculpting in a stylized manner. As I assigned different polygroups to those tiles, I can now isolate and work on them individually one by one.
Figure 5 (Isolating tiles for sculpting)
I used mainly the trim dynamic brush to chip off and flatten the edges of the tiles to achieve a stylized look. I then repeated the process for about 6 tiles. I could have done the entire 12 tiles but I decided to use those sculpted 6 tiles and arrange them such that all the tiles are sculpted individually. This allowed me to save more time and work on the next process more efficiently.
Figure 6 (Sculpting 6 tiles)
Finally, I assigned masks to the sculpted tiles and the non sculpted tiles so I could isolate them at will and work on the pieces more individually when adding further details like carvings or chippings.
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 1)
I wanted to create a custom height map in ZBrush that I sculpted and tiled it so I could export the normal and the height maps to designer to design the painterly textures of the stone slab. I created a plane in ZBrush that would act as a grid for the tile sculpt.
Figure 1 (Plane tile in ZBrush)
Now, in order to get a perfect tile in ZBrush, I decided to mess around with the 'Array Mesh'. From here, it was easy to duplicate the original plane subtool and offset it to X and Y axis so that I could get a 4X4 tile.
Figure 2 (Offsetting the duplicate subtools)
I also decided to duplicate the subtool and create a canvas where I would sculpt the stone tiles. The canvas was then subdivided so that there were more stone tiles I could work with while sculpting and it would allow me a freedom to arrange it in an interesting manner that's more unique and appealing.
Figure 3 (Canvas subtool in ZBrush)
Figure 4 (Subdividing the canvas subtool)
I then masked the inner 4 tool as a different polygroup and the outer edges as the same. This will allow me to dictate the borders up to which the sculpt would be continuous meaning once I exceed sculpting the upper boundary, it would resume back again from the lower boundary.
Figure 5 (Assigning different polygroups with the help of masks)
Figure 6 (Boundary limits to ensure continuous sculpting)
After completing this crucial component of the sculpting process, I saved the document to prevent loss in case of software shutdowns.
0 notes
Text
Practice 1: Developing Skills
Developing 1 (Week 1)
From today, I record my progress for the two developing projects for the Practice 1: Developing Skills module. Us students worked tirelessly on the weekly assignments and now we are to develop any of those 2 projects for the final assignment. I did ask my lecturer Neil beforehand if I could do something new for both of the developing projects that aren't my weeklies and he approved it.
The first developing project I will be focusing on is creating a stylized stone slab texture with displacement map included. I wanted to introduce a bit of variety to the pipeline, so I decided on creating a height displacement map by sculpting the stones in ZBrush, tile them and import them to Substance Designer where I will do all of the procedural stylized texturing and then rendering it out in Marmoset.
The image attached below is the references I collected for the stylized textures I could try to recreate before I settled on the stone slab.
Figure 1 (References collected in PureRef)
I was debating among the two textures to recreate, a wooden tile or a stone slab and I finally settled on stone slabs.
0 notes