Explicit mipmap control

Some algorithm require explicit content control for every mipmap layer, such as gloss reflection cube map require convolution on each layer . Can Defold add explicit mipmap control API or editor properties? Supporting openEXR format would be even better!

2 Likes

I’m not sure if this is on the roadmap. Perhaps @sven or @Andreas_Tadic knows?

1 Like

There is no api today to explicitly set a layer of a mipmap. However, you will soon be able to get and set textures (including cubemaps) from the api using gameobject properties (set/get component textures) so you can then use the resource api to modify such a texture.

4 Likes

Thank you for replying!
Setting component texture alone maybe is not enough for environment / sky box use case, since these use cases require pre-convolved environment cubemaps, setting different convolve level for each mipmap level. Please consider adding explicit mipmap level control or at least adding support for openEXR/DDS format which can have mipmap embedded in the file.

2 Likes

@britzl Can you add a ticket for this please (I have no access atm).

Thank you!
If it’s possible, please prioritize this. because this is the only thing make my BRDF implementation look weird, everything is shiny metal plate, lol.

6 Likes

Looks cool. What game are you making?

Kind of 2.5D Mahjong, use Reinhardt model just for shader debugging, LOL.

5 Likes

Please share your 3D experiments with the community at some point!

5 Likes

Of course I will! By now, I’ve a simplified BRDF implementation(metallic workflow) with specular reflection. I’m planting to add single pass multi-light support like Valve’s LabRenderer, light component script and a simple spherical harmonic implementation.

The editor itself does not support 3D scene editing/viewing is a problem, but for simple small scene with fix camera like our game, this is solvable.

Prebake lightmap is another thing I want quite badly, but with current editor/API status, it too difficult to implement.

Post processing effect is also on the list, with defold’s render script, this is just piece of cake.

One last thing I may try is real-time shadow, but this require one more API: render a predicate with a replacement material. With mutable material property, it is plausible, but not elegant, something like render.draw_with(predicat, material) will be helpful.

2 Likes

A 3D scene editor/viewer made in engine would be possible and may be a worthwhile community project until editor’s 3D scene editing/viewing is improved.

But seems editor does not have extensible API too. The best possible thing we can do is build a game as a scene editor.