Search Unity

As you may know, Unity 5.3, due early December, is currently scheduled to come with screen-space raytraced reflections. So earlier this year the Demo Team grabbed an early internal build with the SSRR and took it for a spin to see how it would behave. (Edited 11/11/2015 Unfortunately, the SSRR feature has been delayed, and won’t be released with Unity 5.3. Check the Unity Roadmap for the latest release schedule information).

We also wanted to see how an architectural interior would look in Unity and what level of visual quality we could get from our latest technology. Here is a video preview of the result we got:


Conveniently, there are some very useful online asset libraries for high quality architectural models and scenes, and they come with very affordable prices, so we just grabbed a scene that seemed suitable for the job and quickly set it up in Unity:


Most of the assets are used directly as-is, with some minor adjustments, mainly adding lightmap UV’s and the occasional optimisation of the high-poly meshes.

We thought it would be nice to be able to change colour and textures of some objects, so we added a simple interface that allows you to do that. For the additional textures of floors and wallpapers, we used again an online library.



Setting up the lighting in Unity is quite simple. We have an environment HDR cubemap for the exterior, directional light for the sun, and a spot light in each lamp.


This was rather straightforward, but it also brought up the need for lightprobe cages. We made a temporary solution of our own for this scene, and at the same time elevated the need to our R&D team. The feature is now in development to go properly into Unity.

Lightprobe cages allow for transferring lighting information to large dynamic objects, or in cases where baked lightmaps cannot be used. We use them for a number of objects in our scene: blankets on the bed, rug on the floor, etc.


In the interface we also included the ability to move the lighting, so that it’s easy to observe the effects of the realtime global illumination in Unity. It makes for a nice, soft, realistic lighting in the scene, which is a good idea when an interior designer or an archviz artist wants to present their work in the best possible way.


The reflective surfaces around the scene made for a good study of the behavior of our screen-space reflections.    

These are the settings we used:


We also use a single realtime reflection probe which updates dynamically as lighting and materials change.


The Bedroom demo was shown at Unite Boston in September this year, and was available to all visitors to interact with and try for themselves.

We are now happy to ship the player publicly. You are welcome to download it for Windows (requires DX11) or OSX (requires OpenGL 4); download size: 337 MB. And here is an alternative download linkYou can choose among different quality settings.

Note: We are not releasing the project for copyright reasons, as this demo is built entirely with library assets. Here is the original scene from the Evermotion Store.

88 replies on “Bedroom demo: Archviz with SSRR”

Very good demo, I was pretty happy to see this coming from Unity and I would like to share with you guys what we have been working on for the last months here @ Dreamlab.

Realtime Archviz Demo with Unity 5:

Hope you enjoy!

[…] Most people think that unity is better suited for more cartoony and non realistic visuals, this video will prove them wrong. This architectural visualisation video was made to showcase SSRR (Screen space raytraced reflections) that will come with a future version of unity, you can read more about it on the Unity blog […]

[…] Bedroom demo […]

[…] so moving objects in a scene are accurately reflected in surfaces. We recently released our Bedroom demo, which showcases the level of visual realism which can be achieved in a scene using […]

[…] Unity 5 has Enlighten built into it, allowing this interactive 3D authoring tool to create photorealistic environments with advanced global illumination effects that give clients a way to intuitively plan, create and […]

[…] ในแถบเครื่องมือของ Realistic graphics rendering ใน Unity จะถูกพัฒนาขึ้น ด้วยการเปิดตัวของ Screen Space Raytraced Reflections (SSRR) ซึ่งเจ้า SSRR นี้จะช่วยให้วัตถุมีการสะท้อนไปยังสภาพแวดล้อมรอบด้านได้อย่างถูกต้อง แม้จะมีการเคลื่อนไหวของตัววัตถุ การสะท้อนก็จะยังแสดงผลออกมาให้ถูกต้องอยู่เสมอ (สามารถดูตัวอย่างได้ที่ Bedroom demo) […]

[…] suporte experimental para o Metal (para o OSX) e Screen Space Raytraced Reflections (veja o demo bedrooms, ficou muito […]

Now i have Unity 5.3 and de asset cinematic for make SSRR reflections but i add the script and nothings happens, any tutorial for use this? thanks.

Hi please release the color/material changing script so that we can play around witht at to recreate this effect. Thanks

I’m experiencing a very low fps demo, mabe 3-4 fps. Anything I’m missing?!
MSI Ghost Pro GS60 with 16GB of RAM
NVidia GTX 970M with 3GB of VRAM
Intel Core i7-4720HQ
2×256 SSD (Running the demo from SSD)
Latest drivers (GeForce 359.00 Driver)

A GTX 970M should be able to handle the demo with no problems at all!!!
I’m running UE4 with no problems at all…!

I wonder if it is related to Graphics.Blit()
Have you guys changed anything regarding the method? Or could it be a driver related issue?

Unity s Bedroom demo looks amazing! Enlighten is built into Unity 5, allowing a realistic simulation of indirect lighting to achieve such spectacular effects!

I’m interested to know what sort of image effect is being used for the depth of field, particularly where the camera zooms really close to the wall at 0:53 and the part that is near penetrating the wall gets really blurry. It looks like more than just a standard DOF effect, and seems quite useful for VR applications where you want to discourage interpenetration of the scene.

[…] No início de dezembro o Unity deve receber uma atualização que adiciona um recurso chamado de SSRR (Screen-space raytraced reflections) que foi demonstrado pela equipe interna do Unity, usando modelos 3d pré-configurados de bibliotecas para arquitetura. O resultado é essa impressionante apresentação do que o software é capaz de criar em termos de visualização para arquitetura. […]

Oh come on, release the scene with some replacement models, please, when the demo is ready.
I have too many questions that could so quickly be answered by just being able to investigate the demo scene.
For example, I am not sure about the exterior. Is that real or a fake?

I hope this comes along with a nice, clear tutorial. I’m having such a hard time with lighting. I like the idea of a light probe cage. Sounds much easier…

Looks great guys. But I’m very pleased to see UT is rather delaying the release and getting it right, than pushing out something which is not ready yet.

Can the LightProbe Cage sample shadows? It would perfect if dynamic objects could have some sort of a pseudo-shadows in baked lights. I need answer please.
Can it be done if we increase the probes cage resolution enough??

Hi Cayl,

The light probe volumes / cages interpolate light probe data. So whatever you can bake into your light probes, you can capture into a volume.

For small scenes, you might be able to have sufficient light probe density to give the illusion of medium frequency light occlusion – that’s something you could easily test without probe volumes (just move a small sphere around and see which kind of probe detail it picks up). It’s not something I would generally recommend, but for certain, restricted environments it might work.

I see the antialiasing is pretty flawed (crawling along wardrobes). I’m wondering what tech is missing in Unity preventing the completion of it? Waiting for another part of Unity to be finished perhaps?

Hi, your code’s really ufesul for what I’m doing but the next and previous buttons aren’t showing after I put the whole code inside a php file and included it in pagination.php along with at the bottom. The loop limit works though. Is it necessary to have the whole code in a single file?Thank you for your time and effort, really appreciate it!

Nice demo!
I really wonder why people read unity’s blog to mention that X and Y should happen for them to get back to unity from UE4/Cry Engine/… Is anyone begging you?
Choose the best tool for your work and what you prefer and spread the love message for them, Leave the rest of the world alone if you don’t want to interact in a useful manner!

Probably just people being vocal for the sake of being vocal. Some people probably think they’re better because they use UE4… when in reality the tools do not matter, it’s how the developer uses them.

There are in fact some things that are still missing in Unity that make people (including me) switch forth and back from Unity to UE. When Unity Labs demo came out with horrible AA and gruesome FPS, I thought I was lost. I am happy to see that Unity is taking a big effort to catch up with UE. I think comparing Unity to UE is not an unfair thing.

Works great, that is, until I try to sort. My data is displayed in a table and each colmun header has an a tag that calls for a sort order by that colmun heading. First page sorts, but after that everything reverts to the default sort order. I thought that using the GET method was the culprit, but trials with POST yields the same result. Any ideas? Do you need more info? Thanks.

They require to aapper and really feel masculine, 100%, Three hundred sixty diplomas. They look with regards to Chanel shades through which exhibit their frame of mind ideal. Because of this, a lot of of these can die for your F826M model. For your Mission impossible style, men will definitely lure to test out the particular elegant Chanel FS5119 sun glasses. If you have problems all through staying in the correct style on the subject of sexual category, taking a unisex type can be a safe guess. Probably the most elegant option here is actually your FS 1014 Meters design.

Script looks great and had it installed on my page in about 10 mientus. It displays the correct number of items ( as per limit) on the first page just fine and calculates the proper number of pages to use in pagination menu bar. The pagination menu bar looks great. Problem is… I only get results on the first page. All of the other pages come up with blank results. In my test, there are 7 items to display, have the limit set to 3, pagination menu shows there are 3 pages of results and the pagination button links show the correct link address. But, if I click on button [2] (or other) it delivers blank results I’m reasonably fair with php and have spent a number of hours trying to get it to work right and unfortunately it’s just not happening. Any advice would be greatly appreciated. (website address is link to test page.)

Regarding AA: the demo uses a flavor of SMAA with a temporal filter. Just like with SSRR, this tech is work in progress. While we’re happy about some aspects of it, other require considerable work. As always: if it was ready, we would’ve shipped it! :)

Why is this not in the roadmap, could we have a preview ?
Good AA is very critical for some of us, please share a preview.

I have try this on an iMAC 3.5 i7 with a GTX775 and 16GB of ram and I have to put it on good quality and 1600 to make this work near 20 fps. On fantastic and native resolution everything gets corrupter and it goes below 1fps. IMO doing graphic things with brute force doesn’t have too much value.

On my GTX780, it runs at around 30 on Fantastic. There’s probably a lot of room for optimization, not to mention SSR is a really intensive technique in any case…

It looks nice, but the horribly low quality Temporal AA ruins the image quality while not solving temporal aliasing issues what so ever.

Not working for me – Unable to load mono library from “C:/Users/adams/Desktop/bedroom/bedroom_Data/Mono/mono.dll” (error = 193).

Similar for me, the first download for windows was a corrupted archive, tried repairing it, and after starting the executable everything did kinda work except for a hell lot of strange artifacts and overlays on materials.
Alternative download did it then, though:)

Is this a joke? Even a single person can recreate these assets in like 2-3 days.
So I don’t understand why you don’t want to release a scene with replacement assets.
We all want to learn.
We don’t just want to see what good thing you can do.

Are you going to implement Voxel Cone Tracing Global Illumination technique? I know it does not seem to be ready for production yet. But at least as part of research/experiments?

[…] Those of you with DX11 or OpenGL 4 can take it for a spin right now by using the download links at the bottom of this blog post.  […]

Is there anyway we could see the GI setup and lightmaps? I understand the scene can’t be released, but that information can be useful.

Thanks for sharing. Are there any 3rd party assets that offer this functionality? In the first Bedroom demo video starting at around 2:10, are the reflections in the framed ship drawing due to SSR?

The Antialias behaves like TAA (Temporal AA) It’s just a wild guess and it looks cool :) and way better than the old one. Hope they implement that along with SSRR and improve the Antialias more :)

It’s just awesome to see realtime demos, as they really show how it performs, feels and such in realtime instead of a monster machine used for rendering an video.

It’s an interesting demo but too bad we can’t see the project because of the evermotion models. However I’ve to mention that the color picking and texture changing GUI is somehow a bit messy. You can select an object to change materials, however when the GUI is up, you can still accidently select another model. This makes it had to change materials sometimes as well that the mouse position doesn’t always correspond with the GUI. Sometimes I click a texture but the texture applied is a different one ( one next to it ) It needs a little work to be flawless.

Overall, can’t wait to test the SSRR myself. I was using an opensource version from Git.
Does the new SSRR also fade with the reflection probes now as in UE4? Because I noticed in UE4 some real issues with correct reflection with that feature. Far away nice SSRR, but closeup there was weird stuff going on.

Now where is that 5.3 version?! ;)

Can the LightProbe Cage sample shadows? It would perfect if dynamic objects could have some sort of a pseudo-shadows in baked lights. I need answer please.
Can it be done if we increase the probes cage resolution enough?

Forex System known as Mobofelax Forex System (do a google secarh) kept appearing here on many videos and I thought they were scam. However after my cousin follow it, and finally earn crazy amounts of money with this course, I’m persuaded. Do not take my own word for it, secarh for Mobofelax Forex System on the internet.

The light probe cage system sounds like it might be useful – I have the same issue with dynamically added objects (or even environments) at runtime not being able to use any of the static lighting effects.

Any news how this behaves in WebGL ? Quality wise the difference currently is very strong (no GI, SM2, etc)…

I imagine it doesn’t really work at all in WebGL, and will continue not working until WebGL 2.0 becomes a thing (WebGL 2.0 will advance to using the OpenGL ES 3.0 spec rather than the ES 2.0 spec)

Is $fotoplats being set properly. Echo out $sql and check that the query is crteaed properly. You can cut and paste that into phpMyAdmin or something similar to see a MySQL error you may be getting.I am guessing you need to set $fotoplats by doing something like $fotoplats = $_REQUEST[‘fotoplats’], but can’t tell much from the code you submitted.I hope this helps. its coming in 5.4. Instead if sampling a single probe for an object it will sample into a grid of probes and interpolate across the object based on pixel location. This means that for large objects you will be able to get a spatial gradient across it. Example; guy carries a ladder through a door from inside to outside. When the ladder is halfway the lighting on the part of the ladder that’s inside should match inside lighting, the part that’s outside should match the outside lighting – this is hard with a single probe, but easy with the grid;-)

another question about probe cage.
So probe cage can be use to lit speedtree correctly right? currently speedtree or a tree objects only using one sampling point which make the light are inaccurate.
And how about extract soft shadow via sph exponential?

Light Probe Proxy Volume(aka LightProbe Cage) is planed for 5.4. This new component is useful for dynamic objects that cannot use baked light maps(particle systems, skinned meshes) but you can use it for static objects too, as an alternative to baked light maps.

How it works:
By default, a probe-lit Renderer(which doesn’t use baked light maps) receives lighting from a single light probe that is interpolated between the surrounding light probes in the scene. Because of this, objects have constant ambient lighting across the surface. It will have a rotational gradient because it is using spherical harmonics, but it will lack a spatial gradient. This will be more noticeable on larger objects or particle systems. The lighting across the object will match the lighting at the anchor point, and if the object straddles a lighting gradient parts of the object will look incorrect.

The Light Probe Proxy Volume will generate a 3D grid of interpolated light probes inside a bounding volume(eg. the BV of the mesh) where the resolution of the grid can be user specified. The spherical harmonics(SH) coefficients of the interpolated light probes are uploaded into 3D textures. The 3D textures containing SH coefficients are then sampled at render time to compute the contribution to the diffuse ambient lighting. This will add a spatial gradient to probe-lit objects.

Perfect Timing ( even though it’s still couple months ahead ) that would be very useful :). I hope the Lightprobe volume result are exposed, seems can be used for other stuff ie volumetric lit fog :D

Will SSRR work with curved surfaces ( I don’t mean floors, walls, ceilings – for example a vase) ?

Screen-space raytracing is, by definition, in screen space, meaning it works on any surface (not just flat surfaces). In fact, it means it works on the entire scene as a whole.

Are these assets available on the Unity Asset Store? If not, are they available elsewhere? I’d love to purchase them.

Hmm. It looks very nice, the room like quite natural and the lighting is good. But.. rarely did I see examples of reflections. I know you are testing subtleties for the most part…. but I might’ve expected a much more highly reflective/shiny kind of environment to really show it off?

If you have the demo, switch to the preset with the glossy black floor then view it as edge-on as possible, should show off the reflections (underneath the chair, for example, will show the chair legs – they look a bit funky, but then that’s a just limitation of SSR).

Indeed the textures seem to be intentionally rough to show off the reflections at their best – I would like to see a version with smooth materials.
There seem to be some quite bad artifacts with this kind of reflection – just zoom in to the chair area.

Yeah, but I think those artifacts are just SSR being SSR. The chair, in particular, is a pretty bad scenario for SSR techniques in general – tons of missing data (backfaces and occluded areas), so considering that I think it handles it fairly well.

Most online games from Zynga or those in Facebook are scilaloy-oriented so it’s quite problematic if you don’t have many friends who share your interest in any particular game.Anyway, it is still possible for you to play and these other games all by yourself. The obvious solution is, of course, multiple accounts. Please note that multiple accounts are now against the TOS (terms of service) by both Facebook and Zynga. However, I’m of the opinion that this term or rule may not be strictly enforced. So, you can do so without immediate risks.I advice you to be careful that your other accounts do not share too much of the same personal information as your main account. Make each account fairly distinct. Once you’ve gotten your accounts, you can play (I heard from someone) all your accounts from the same computer using Firefox and Chrome, but I have not tried doing this myself.

Oooh, I’d be interested to know more about the light probe cage system… is that going to make light probes a little easier to work with?
On a side note, really nice job with this demo. It looks stunning (although it runs a little slow on my gaming rig… maybe there’s room for optimization there)
Can’t wait for official SSR support… :D

See my comment above about the lightprobe proxy volumes LPPV (aka light probe cages). It will not make placing the probes any easier. This is solving an orthogonal problem. The probe grid will sample from the existing probes so you will still need to author them. This is providing a proxy for probe lighting. The LPPV will sample from the scene probes, but the object lighting will be interpolated from the LPPV.

Aaaah, I get it now. I misread the response the first time and thought it was internally creating a grid of lightprobes…. I bet just interpolating the light probe set across a grid is a lot more efficient than what I was thinking ;)

Comments are closed.