I’m glad you solved the problem.
I can finally say that it is done. I need to prepare the Sketchfab description, the blend file for sharing, but I’m mostly done.
At last, I can take the break from the project that I was planning to take a few days ago. In a few days I’ll go back to the project and see what can be tweaked (hopefully not too much). I have a good feeling about it, and I can’t wait to press that “Publish” button.
On this topic, can you explain why the normal needs to remain a 16 bit PNG?
I have also seen that polyhaven packs its normal and roughness maps as EXR, not sure what are the best settings for a sketchfab upload…
Of course! Let me go through some information on formats. Beware: this is based on my experience and understanding, and I am sure that I will be imprecise.
We use image formats to carry information that we map to the surface of 3d objects. These images, such as roughness, normal, height, etc., even if they can be visualized as images that make more or less sense, according to our understanding of them, in fact are just data, and not visual information.
The implication of this is that, for example, the information that a very detailed, high quality normal map can carry can be much bigger than what can be displayed on a common screen. It is not meant to be “seen”: it is just data.
Thus, ideally, we want to choose the image format and bit width that can carry the most information, or otherwise we will experience a loss of information.
8 bits are very little, even for visual information. It means that each channel can convey values up to 256. I don’t have my workstation at hand, and thus can’t provide examples of my own, but with gradients the limits of this are very visible:
With 8 bit images, a gradient will appear as stepped. It is possible to avoid this effect by the use of dithering (read: introducing noise to conceal the artifact).
Still, while this might be acceptable for the base color of an object, it can really suck if applied, for example, to a normal. Imagine that you create a normal map with a smooth circular detail and save it as an 8 bit image. The smoothness will be gone and the steps will be absolutely visible. Saving it in 16bit will provide enough information to avoid this effect. Saving it as a 32 bit image will be even better, but most often overkill. It all depends on the accuracy of information that you want to convey.
This is just about the bits, but image formats are also important. JPG sucks the most. It is only 8 bit and it is lossy, meaning it can be very tiny but it sacrifices a lot of information and the artifacts can be very heavy with data maps. PNG is lossless and supports 16bit, so it is better. It has other problems, such as a very bad alpha implementation and its compression is bad.
EXR is amazing. It supports multiple channels, it supports 8, 16 and 32bit data widths, and it has amazing compression possibilities, both lossy and lossless. It is just the perfect format for this. However, in general, it can generate very big files, if they are stored as lossy, as it doesn’t compress the information. This is not always true, though: if you use DWAA compression, you will get files that are A LOT smaller than PNG, while still being 16 bit and in relatively acceptable quality!
There is also JPEG XL, to which I am very looking forward to. It supports a big amount of channels, multiple bittage, amazing compression both lossy and lossless, retrocompatibility with JPG. It is the format of the future and I think we will see it becoming really widespread in a few years. Krita recently added native support for it, and browsers should ship with it soon as well.
However, getting to Sketchfab (and other environments with big disk space limits), reliance on PNG and JPEG is not only a necessity, but a must. I think that EXR is not supported for upload, and formats that aren’t JPEG, such as TIFF, are just converted to PNG. So, for my project I went as follows:
- when a map was very important in conveying information, I used 16bit png. I just went for this for a few normals maps where the details they provided were essential to get an acceptable quality.
- In some other cases, I went for 8 bit png. In this case, the stepping shown above is very visible. But, for example, this doesn’t matter for materials that are already stepped in reality, such as dirty/damaged wood!
- in some cases, I really didn’t care about quality, as the normal was barely visible, and just a hint was enough. In that case, I went with JPEG, which brought really small files, but noteworthy image sacrifices.
The map that suffers the most from compression is the normal map. For base color, I always went with JPEG, and same with the others (even if, as you say, also roughness suffers from stepping, but less visibly so than normal maps). It’s just a matter of your judgement on how much fidelity you want to achieve. 8 bit is always going to suck, but sometimes it’s fine. But, in particular for normals, which generally convey very important information and details, it’s really a pity to lose so much expressivity.
I hope this isn’t too much boring. I’m quite passionate on this
That’s an awesome answer, thanks, not boring at all on the contrary. Thanks also for sharing your findings about sketchfab, I haven’t tried yet, and it helps making the right decisions.
Hey! As we’re entering the final days of the challenge, I’d like to give you some helpful tips to make sure you can successfully complete your entry. Please see my new post on the FAQ topic.
Hi! I’m back
My mind, as expected, is fresher and many small problems of my model appeared with clarity.
In particular, the following issues arose:
- the column closer to the wall should have been taller
- a reduction of the flickering when moving the camera was in order
- there were some little texturing mistakes here and there
- color balance needed to be less bright
Now, the first and third point were quickly addressed.
The second is the most technical one, and is related to how Sketchfab (but EEVEE too!) works. Shadow maps have a fixed resolution which is used for the whole scene, meaning: the bigger the scene, the lower the texel density of the shadow map. Thus, I’ve reduced the size of the skybox to a satisfying level: enough to keep the illusion, but not more.
Secondly, I’ve played a lot with the shadow bias value. I really like how it looks when it is disabled, but it increases the flickering a lot. Thus, I’ve searched for the right value for my model. The problem is that, ideally, each object would need its own value. When finding the optimal value for the girl’s face, an unwanted shadowing effect appeared on the top of the roof fabric:
That bright line at the top looks unnatural. However, I’ve solved it by making the whole fabric translucent, as it should be:
Nice! Another issue was that I still had some glitchy shadowing on the girl’s face when moving around. I’ve fixed that by adding a point light in proximity of her face, to contrast the shadowing. I feel I’ll still work on this, as I’m not totally happy about it.
All in all, the flickering is greatly reduced. Of course, a part of it is impossible to avoid, as Sketchfab’s engine resamples the shadows when the camera is still to increase the overall quality (only shadows and DOF are involved in this).
I’ve also worked on the tone mapping post processing filter, but I feel I can do more on this front.
Overall, I’ve found working on Sketchfab pleasant. The hardest bit for me is having to do some mesh changes on Blender, and then reuploading everything, and waiting for the website to process again the project. It takes a while.
I’ve tested my scene on multiple devices. It performs fine!
So, here is a screenshot:
I think the speech bubble is just a smidge too light to be clearly visible against the background. You could simply make it darker, or try black marble instead of white marble.
I don’t want to be overcritical, but the turtle looks imbalanced, like he’s going to fall forward. I’d put him on all fours and give him a longer neck. That being said, it may be a little bit late to make big changes like that.
Definitely right. This kind of issues will be my focus until the project deadline. Polishing colors, lighting and making every asset fit together. However, consider that the final result won’t be a render, but an interactive model where the background and point of view move!
Worry not about this! I see what you’re saying, but I hope that in the interactive viewer, where the user will be able to navigate the scene, the pose will make more sense, as the turtle is caught in the act of pointing to the items for sale. Putting it on all four legs would be too much of a compositional break from the original, of which I want to keep the structure… nonetheless, I do feel that something might be done about this, thank you!
I was also thinking you could do something more with the hare. It would be funny (and would display his confident yet lazy nature) if he were frivolously wasting his money on a snack carrot.
The hare is holding an arrow - another reference to Zeno’s paradox, which fits the Greek theme hopefully this will be visible in 3d, as the final result won’t be a static shot like the one above, but an interactive 3d model.
A funny and unrelated bit of trivia: carrots shouldn’t actually be eaten by rabbits, and their association with them exists because the creators of Bugs Bunny modeled it after a (human) character from the movie It Happened One Night, which used to eat carrots!
Ah yes, that makes much more sense. I was just thinking of a way to fit him into the rest of the scene better. You could possibly have him sitting down, resting his eyes, arrow in hand, under a “no loitering” sign. Again, it may be too much for the last few days, but I think it would help add personality, and help the scene fit together.
It would also be cool to incorporate an Achilles reference somehow. Should there be a helmet amidst the junk?
Wow, I never knew the origin of that trope! In all fairness, rabbits will eat nearly anything with a cell wall, carrots included.
Among other massive cultural impacts, Bugs Bunny is also solely responsible for the alternate meaning of “nimrod” in the English language:
In modern North American English, the term “nimrod” is often used to mean a dimwitted or a stupid person, a usage first recorded in 1932. The usage is often said to have been popularized by the Looney Tunes cartoon character Bugs Bunny sarcastically referring to the hunter Elmer Fudd as “nimrod” to highlight the difference between “mighty hunter” and “poor little Nimrod”, i.e. Fudd. However, it is in fact Daffy Duck who refers to Fudd as “my little Nimrod” in the 1948 short “What Makes Daffy Duck”.
It’s a good idea I’ll see if I can squeeze a few more assets in it!
Fantastic, I had no idea! Interesting how they completely shifted the connotation of the name as well. Such power of influence.
I love how much story and research you’re bringing to this, it’s such an imaginative remix! Here’s a final countdown reference blast, one of my favorite painters Lawrence Alma-Tadema.
Make sure to get it on Sketchfab by Thursday, September 15, and tag it #bcon22challenge
Thanks a lot
And thanks for sharing this. His works are wonderful, for their historical qualities, and also for his use of color and composition.
I will actually use this painting of his in the annotations of my upload. Thanks again!
Aye, I really love him. His paintings were hugely influential on Cecil B Demille’s movies, and those movies went on to be hugely influential on the last century of pretty much all depictions of classical antiquities, so there are historically inaccurate aspects of Tadema’s paintings that we universally now think of as what Greece and Rome must have looked like, LOL
These paintings are all so old that they’re in the public domain, so you’ve got some legal carte blanche to even use them as textures!
Yes, I was noticing it when looking at them. Very few can say to have influenced so much our imagination (Bugs Bunny is one of them, as mentioned a few posts above). There are some tropes that will forever appear when depicting ancient cities: huge immaculate marble stones and colourless walls and statues, for example. It’s beautiful, but ancient cities were, from what we know now, messier, full of colors and paintings, and of writings of all sorts. More like real places
The time has come to wrap this project up. I have added a few last assets, thanks to the helpful feedback above, polished everything and written a series of annotations. But let me recap what this project is meant to be, as I believe some things might have shifted in the making of it…
What happens if you take a scifi scene and set it in another time? Does its essence change? I believe it doesn’t. Whenever or wherever humans exist, their joy and their struggle is the same. Their actions are universal, their words speak to all ages and times. And so I’ve worked to bring this belief to life, creating what I imagined to be the shop of the ancestor of the original splash’ main character. I have set the scene in an era roughly based on Greco-Roman culture.
In doing so, I’ve remade every asset, with the exclusion of the girl’s body mesh, the closet mesh, and the girl’s iris texture. When working on each asset, I’ve always tried to be historically coherent and, when I have transgressed the limits of historical accuracy, I’ve done so in the name of the quality of the artistic creation. Researching the history of what I create, for me, isn’t just for inspiration: it is to find coherency and meaningfulness in what I create. And, to be fair, it’s fun
You can find details about the creative process in the posts above. But, since this is the end, I want to thank all those who participated in this topic with their comments, feedback, thoughtful answers and encouragement. You made this process much more fun! I’d also like to thank all and wish the best of luck to every participant. You’ve contributed to creating a great positive and creative atmosphere.
Finally, the blend file I have used for creating this project is available for download. Feel free to check it out
Until the 15th, I might still eventually update the Sketchfab file, so don’t mind any change… but this should be it. Here are a few still renderers from Sketchfab’s screenshot tool:
And one EEVEE shot:
Really enjoyed watching this one come together.