Material Suggestions

Does anyone have suggestions for creating a material for a ranchu goldfish model?


I’m seeing subsurface scattering in the head, reflections on the scales, and transparency in the fins.

Is this going to require something like a PBR multimaterial?

Interesting. I have been digging a little lately into pros and cons of the various materials. Do you have some shots/pictures of what it should look like in the end? Combining PBR and STD with reflections on a same model might become challenging because of the levels being so different…

Edit: Just thought, May be you could run a ‘goldfish challenge’ for the community by posting a PG and inviting us to try 'n update the mats :wink: I would participate, just for the challenge :grinning:

Very similar to the image above just with a blue background.

Can’t really see the reflections here. I can still browse some pictures on google;)
Let me know if you want to run the challenge. And else, yes I suppose multimat (with or without combining PBR and STD, would be the way I’d choose). Cya,

I’m very new to PBR and have been reading about environnent textures this morning. I realized last night that PBR without an environment texture really doesnt work. All I need is a very basic blue background. Is there an easy way to create that in BJS? If I remeber correctly the create default environment has some details in it that wouldn’t work with my scene.

Yes, and this is obvious and somehow in the title of the material: You cannot run a physically based texture rendering without the appropriate ‘environment’. Or all you will get is a ‘sh**’ result;)

Well, basic blue (flat blue with no lights) will not help making your PBR mat ‘sexy’. Obviously if it’s all flat and blue, the reflection and refraction will be… well, all flat and blue;)

So even for a ‘studio’ or ‘abstract/neutral’ background, you will want to keep with some level of lights and shades to cast for reflection/refraction. Knowing that the dds environment format file will not work on iOS, I usually create a reflection texture (equirectangular or cubic) derived from my ‘environment’…


My light will most likely be the type of light you’d see in an aquarium (I don’t need any caustic effects).

This is good to know.

Then, I would start with sketching something similar either as a cubic or equirectangular tex for the env.
Shouldn’t be too hard and does not need to be perfect for your first set-up of the materials. Without this, it will be nearly impossible to set correct levels and get a feeling of your PBR texture.

Edit: I guess for very early sketching, you can start with the ‘Tropical Sunny Day’ featured in PG doc examples. Simply disregard the upper part (with the sky) unless you choose to make a flying fish;)
But the colors and tones are not too far I believe from a low level underwater env… and so you can already start working your textures and just … imagine;)

Edit: In the end, I looked at some goldfish picts and it doesn’t take or cast so much of reflection/refraction. Working the specular and alpha might be of greater importance.

1 Like

Can I create a simple equirectangular texture in something like Inkscape or should I do that in Blender from a scene?

Is this the process I should take or is there a more efficient way?

Create and hdr image from a blender scene like this:

Then follow instructions in the docs:

Which I think is simply using IBL to convert the hdr to env.

I did not watch the video, but I do save out .hdr files from Blender, then run them through the tool to get an .env. Keys are:

  • You need to switch out EEVE render for Cycles, so that you can set up your camera correctly with lens type of Panoramic & Panorama Type of Equirectangular.

  • To speed things up, I bump up the tile sizes, otherwise you will think you are watching grass grow. Takes more memory, so what. I do this in the exporter as well when baking.

  • To speed up, at least during draft, I drop the number of passes way down from the default of 128 to 16. You will want to kill yourself, if you don’t.

That said, it is not that easy to get something really good. I have done 2 now. The 2nd one turned out really good right from the start. It was also really simple.

1 Like

To do the fish scales, would you suggest something like a specular map?

Maybe I should try using a detail map for the scales: More Materials | Babylon.js Documentation
or maybe a bump map will be enough.
I’m not sure if that is the right tool for fish scales, since I want to fish to still appear smooth.

Maybe I should use PBR clearcoat for the fish scales in combination with a mask texture.

Edit: I just discovered that I can add a clear coat texture - so I probably don’t need the mask texture. This seems to be working pretty good when I use clearCoat.indexOfRefraction = 3.0 (testing with a sphere and black and white checkerboard texture in the playground).


Sry for late reply. Was away for a few days. Combined mountain trekking weekend and flight sim session for 2 days in the swiss alps. No BJS during this time and I can’t even say I missed it for this break :wink:
I just hope your project is non-commercial and you didn’t wait on me to move on. :zipper_mouth_face: On the other hand, you are a Jedi Master, u r supposed to be better than me :grin:

I have a pond in my garden with some goldfish-like creatures :fish: Staring at them for a while, I really think reflection and refraction are not so obvious. I guess I would simply go back to basics here. I’d use a standard texture and would work diffuse, emissive, normal tex and next work the specular depending on env/cam.

To answer your

I would do as above. I would eventually create a light/shadow- map, but I think I could just work it with a good diffuse+emissive+normal/bump. You will sure want to you use your favorite app for that;) I’m a long time photoshop user;)

Of course, I believe you can also continue the PBR way. Just know that it will be harder to tune, for, I believe little benefit. On the other hand, if your obj is to create the ‘perfect goldfish’ … then I’m just eager to see the result :astonished: