Performance-oriented material making: sushi materials using Substance Designer and painter


GAME 722

Abstract

This project required creating six organic materials with subsurface reflections and creating variations of them. I chose to create a sushi platter. I created the following materials in substance designer: salmon, tuna, sea urchin, seaweed, rice and rice cake. For the variations I mainly used the Substance painter and used Substance designer to create the grilled meat material and the sesame material to get a better effect. And finally rendered with Unreal Engine.

 

Through this project I established a workflow from finding reference - modeling - making materials - applying materials - rendering with the engine. I also solved some difficulties and problems left in the previous project.


Introduction

When creating game-oriented assets, it is beneficial to take performance into account. While having more nodes in the Substance designer provides more control, having fewer nodes makes the graphics more manageable and reduces the impact on performance. This also means that project files can be run on as many computers as possible, increasing the flexibility of the work.


Video


Backup link

https://drive.google.com/file/d/1vGX-keyLFHxNV1pq9z6ikqXapSsSxiNj/view?usp=sharing


P4.mp4

Find suitable reference

I got my reference images mainly from the following sources: general searches of websites, sushi restaurant websites and Amazon. And I went to local sushi restaurants to visualize the characteristics of sushi.

It is very easy to find a reference for a common food, but it is important to choose the right one. First of all it has to be by enough resolution to show the micro level details. Secondly it must be a real picture. It would also be helpful to have direct access to the material you want to make.

In this project I searched for references mainly through the internet and fieldwork. For this project I decided to create a Japanese sushi platter including nigiri sushi, California rolls, sea urchin and rice cake. Sushi is a common food consisting of cooked rice and various toppings; sea urchin is a relatively high-end ingredient often sold in boxes in Japan; and rice cakes are a snack I really like, made from rice.

I found the following reference on the Internet and went to a local sushi restaurant and ordered sushi to see how it was structured again. Some restaurant websites are also great for finding references. Their photos often show real-world cooking results.

Also, Amazon is great for searching for items. Many of the photos on Amazon are actual photos, not renderings. And Amazon also allows you to click to enlarge the image. He will also recommend many similar products. For example, sushi is usually placed on a tray. I found this tray on Amazon. It was very well modeled and nice to look at.



Reference with source

Analysis 

Analyzing the reference images is also a very important step. In this part it is necessary to abstract the details and contours of the material.

For salmon, the most striking thing is the V-shaped structure formed by the fat. Between the V-shaped structures is the orange flesh, which has a skin-like texture. When cooked, it appears white, and the fat disappears completely during the baking process. Also it has veins on the flesh from the skin of the fish.

For the seaweed, the overall color is dark green with some spots of salt precipitation. The details show a cloud-like noise pattern. It is a relatively simple material. One thing to note is the production of different spots from dark green to light green, which is actually due to the difference formed by the uneven density of the seaweed after baking.

The surface of the rice cakes is mainly golden brown, dotted with white icing. It also has a rough overall shape, which means more care needs to be taken when modeling.

For tuna, the surface of the tuna has a fine muscle texture and fat patterns. The sushi shown on the reference picture turns white around the edges when baked and is dotted with black pepper.

The material of rice has subtle differences between each grain. The edges are rounded and without a large gap in the middle.

The sea urchin has an overall orange-red color with a thin slit in the middle and fine lines on the surface.



Modeling

All the models in this project are made by me. I have tried to control the number of faces of the model when making it to get better performance.

Nigiri sushi mainly consists of raw fish and rice. The rice can be twisted using the soft selection tool for a more organic effect when modeling in maya. California rolls of nori, on the other hand, require more subdivision to encase the rice. Rice cake is a baked snack, so the edges are rougher.

Also note that it is important to retain enough Texel density for the UV due to the small length of the sushi. After modeling, use Maya's built-in materials to set different colors for the rice, sashimi, and seaweed, so that they will be automatically divided into different material groups when imported into Substance Painter. I choose not to combine these meshes in maya so that I can later make some detailed adjustments in the engine.



Subsurface scattering 

Since organic materials such as raw fish and rice are actually translucent, when light passes through or reflects off a translucent object, some light is absorbed and some is scattered in different directions, creating a soft, diffused appearance. the SSS attempts to simulate this effect in a realistic way, making the object look more realistic and believable. The material itself also changes the color of the shadows.



Make uncooked version

First I made the uncooked version of the material. In this part I mainly used Substance Designer to create the textures and applied them in Substance Painter.

substance designer provides very powerful features to create procedural materials. It is based on a node system that allows easy adjustment of the final effect.

Substance painter provides a variety of different brushes and generators. I use different layers to control the details of the material individually, such as color and height.


In Substance designer 

When building materials in Substance Designer, I try to keep the project as simple and readable as possible, while ensuring that the desired effect is achieved. The following figure shows the substance graph for the salmon material, which is divided into 4 parts: main shape, micro shape, color and final detail.

In the following, I will mainly introduce the preparation of salmon material. The following figures shows the graph of the raw salmon material.


SALMON

The main shape of salmon is the V-shaped structure on the fat of the salmon. I used the tile sampler to create the vertical line and used transform to turn it into a diagonal line and eventually mirrored it into a V-shaped structure. I added noise to make it more natural.

The microscopic shape adds the texture of the fish. I used noise to simulate the structure of the fish. Color, which gives different colors to the fat and flesh of the fish. The final detail, again adding noise to make the salmon less perfectly shaped. Noise is very important in the whole material making process, it adds realism to the material. I did my best to keep the material as clean and readable as possible while still restoring as much as possible.



Salmon cooked version

Since the project required the production of corresponding variant versions for each material, I created the salmon only version based on the salmon material.

In the cooked version I mainly added the burnt mark and changed the color. This demonstrates the advantages of performance-oriented material production since the structure of a material is very clear, this material needs only simple modifications.


 


rice 

Here is another example of making performance-oriented material in substance designer.

The rice material, an important component of the sushi material, requires a high level of reproduction and resolution. When making the rice material I first made my own rice in different shapes, then used shape splatter to disperse the rice grains into rice, and added noise to make the rice grains not perfectly shaped to add realism.



overcooked rice

The rice material consists of a base shape and color, and by simply changing the color and adding details I can get another overcooked rice material.


Here is all the materials I made in substance designer

Substance painter SSS setting

Enable sss in substance painter.


Change the shader setting

Add scattering channel 

Enable subsurface scattering parameter and set the type to skin


active subsurface scattering in the display setting


This figure shows the result of completing the above steps. 

You can also choose to turn on the shadows to get a better effect.

 


This figure shows the result of completing the above steps. 


Substance Painter for uncooked material

Using the tuna as an example, I adjusted the height and color of the texture using different layers. So that the color is more in match with the reference image. Also I generated SSS

and SSS colors using the thickness map. Note that the SSS colors need to be adjusted several times to get the desired effect. This is because the colors rendered in the engine may also be different.



Make Cooked version

Additional works In substance designer

sauce material

I created a special sauce material to simulate the effect after searing. This material can be applied directly to the top of existing materials in painter to create a grilled meat effect. To use this material, simply add a fill layer and paint the corresponding part as needed.


Sesame material

I also created a sesame material and used it as an alpha so that I could recover the effect of the seaweed and sushi rice that had been sprinkled with sesame.

The sesame material is similar to the grilled material. I most faithfully use this material as an Alpha for direct use in painter. Using the sesame alpha requires a separate painter

layer and set the height and color. It does a good job of simulating the effect of sesame seeds sprinkled on the material.


In substacne painter

The following images shows the structure of the cooked versions of the different materials in the Substance painter.

Take tuna as an example. As the reference picture shows, the sizzled tuna has a white color around the edges and a split control is in the middle and has black pepper.

I used a fill layer to change the color and texture around it to get the white color after baking. And use a separate layer to adjust the color and height, using alpha to add a pepper effect.

On top of all the layers I am drawing the bumpy baked effect with the height and normal of the previously created sauce material.

For the second version of the rice cake, I created the rice cake with the sauce added and baked. The sauce layer was added to the original rice cracker material using the sauce material, and a separate sesame material was added.

I use a combination of different brushes and generators to get the best results. It is important to note that it is best to add a layer of blur when using brushes. For example, the sauce on the surface of the rice cake will look very artificial without the blur. Also the roughness value of the grill marks needs to be adjusted carefully as it will actually be affected by the ground material. By using a combination of brushes and generators and specialized materials, I was able to give the sushi surface a bumpy, toasted texture.

Here are the bitmaps I exported from Substance Painter

Render in Unreal engine 5

sss_profile material workflow 


sushi master material

The picture below shows the base material of sushi. It is made based on SSS_PROFILE.

After converting to material instance, other materials only need to change the corresponding bitmap.

sss_profile01

A separate SSS-profile needs to be made for each material to adjust the SSS. The following figure shows the tuna sss-profile. The most important feature of every sss-profile is the color. If the wrong sss-profile is used it will result in strange colors in the engine.


Tuna material instance

After converting a material into an instance, the bitmap exported from the substance painter can be quickly placed in the corresponding position. And any adjustment only requires reimport.

. Each material's sss color needs to be adjusted individually to get the best results.


Material instances 


all uncooked material instances


Material instances 

all cooked material instances


The bitmap exported from the substance painter can be quickly placed in the corresponding position. And any adjustment only requires reimport. 

Height map


Height map

The height map of UE5 needs to be applied in the modeling mode of displacement. It should be noted that the mesh shape will be changed after application. So it would be helpful to keep a copy of the generic mesh.

Lighting

3-points light

Sss needs very strong lighting to see the effect. A classic three-point lighting can provide enough brightness and detail.

Also set the exposure value to 10ev by using post process volume to get better results.

Camera Movement

To show the material’s detail, I chose to use simple camera movements to show the various angles of the material. The movement of the camera is as smooth and simple as possible to prevent sudden angle changes and violent movements.


Rendering 

Rendering consists of two parts: in-engine rendering to picture frames and rendering to video in adobe encoder. In a previous project I had a video fluctuation due to frame loss, which was actually due to the rendering frame rate not being fixed at 30 FPS. specifically, the frame rate needs to be overridden to 30 in the movie render queue and set to 30 again after importing in the encoder.

Rendering with the movie render queue plugin can avoid the jitter caused by direct sequencer rendering. Note that the frame rate needs to be set to 30fps when rendering. The image below shows my movie render queue settings. This setting can be save as preset.

render in encorder

You also need to set the frame rate to 30 again when importing adobe encoder, instead of the default 29.97.


Thought

In this project I built a set of game ready assets. From modeling to materials to rendering I encountered many problems and solved them all. It was a very valuable learning experience and made me feel more confident about making materials. Thanks to SCAD ITGM Professor Manuel Prada for making this possible.