☑ Cubemap based reflections (normal and box projection)


I’m trying to make simple mirror based on scene cubemap. I checked some similar posts, but I didn’t find answer.

So this is my bunch of questions:

  • at first I rendered 6 hdr images in Maya, made the cubemap in PC (PlayCanvas) and set the normal projection in mesh material properties. But because the render results are different I decided to make cubemap directly from PC. I simply made a 90 degrees camera and made 1k square resolution screenshots while rotating it (I know it’s ridiculous :confused:).
    So, how can I get the PC rendered HDR images of my scene in the right way (maybe some code things, etc.)?

  • let’s say I have them. The problem of normal projection is that the reflection scale is different from the real. Box projection must solve the problem, but I don’t know how to set it up. If I get it right, the box projection properties are a location and scale of the box representing the room scale and position. So I made the box and used its position and scale properties. The result is a distorted reflections in mirror. I tried to play with numbers but it’s not working for me.

So, what I’m doing wrong (if I’m doing something right at all :confused:)? How to use these properties in the right way?

Thanks for your time!

Please, do share link to testable scene, otherwise it is hard to say what is wrong there from just a screenshot.

Most likely your size is wrong, or center of box projection is off. Half extents - is half of the size of cube.

It’s here, @max:


1 Like

I’ve forked your project and played with it a bit, I was right - your sizes are twice bigger, box projection are Half Extents (basically halves of your sizes).
And I’ve prefiltered it and added it to walls, floor, and other very reflective big surfaces, makes it much cooler.
Here is link: https://playcanvas.com/editor/scene/467946

On walls, normal map have Green channel reversed.
Then you have no global AO on level :frowning: that would make it sooo much better if you add AO like lightmap but on ao slot for just shadows.

I’ve generally played with your scene, take a look to see what changed to check out the differences if you like.

1 Like

Thanks for your remarks, Max. I try to check your changes, but there is some strange bug then I try to load your forked version. I tried several times, but whithout result. I tried to load some other projects, but the bug appears only with this project.

Oh, Problem is because there is too many dynamic lights, so shader goes a bit over complicated and fails to compile and render as it does not fits in hardware capabilities.
Thanks for recording GIF with replication! Very useful.

I’ve updated the scene, now it renders lightmaps and combines it with some dynamic lights too.
Let me know if it loads fine now.

Ok, now it works. I think I’m understand. By disabling the prebaked lightmaps and adding several lightsources you allow playcanvas to bake it’s own lightmaps. It’s make some interesting results! The overall picture become more contrast, reflections are more visible. Maybe I can use it in the future. Thanks again for your advice!

1 Like

Can I ask you how you rendered your cubemaps, we are having and issue where they are looking too big.
I make the 2048 x 1024 and then process them through cmftstudio to make the cubemaps

I change the extents to get rid of distortion but it doesn’t seem to affect the scale being to big.
Guessing that’s a result of how i am creating them in the first place.

I don’t use any software for cubemaps. You need to make 6 cameras with 90 dergree FOV and square aspect ratio. Rotate each of them in several directions and make 512x512 render from each of them.
If you use v-ray renderer, there is special option for make cubemap render from one camera.
(render setting - overrides - camera type - cube 6x1) - this is for Maya.

1 Like

Thanks for the reply, will see if I can replicate that in Max with Corona :slight_smile: