Bedroom demo: Archviz with SSRR

November 10, 2015 in Technology

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.

Comments (88)

Subscribe to comments
  1. Artur Leao

    December 17, 2015 at 5:52 pm / 

    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!

  2. Paul D.

    December 9, 2015 at 2:39 pm / 

    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.

  3. Jake

    December 2, 2015 at 1:09 pm / 

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

  4. Curious

    November 30, 2015 at 7:49 pm / 

    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…!

    1. Curious

      December 1, 2015 at 6:40 am / 

      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?


    November 29, 2015 at 11:58 pm / 

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

  6. Brady

    November 23, 2015 at 6:52 pm / 

    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.

  7. Weber

    November 22, 2015 at 9:27 am / 

    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?

  8. Chris "RedHawk"

    November 18, 2015 at 9:05 pm / 

    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…

  9. Meltdown

    November 15, 2015 at 10:21 pm / 

    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.

  10. Cayl

    November 14, 2015 at 11:50 pm / 

    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??

    1. Torbjorn Laedre

      November 17, 2015 at 9:51 am / 

      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.

  11. Robert Cummings

    November 14, 2015 at 2:18 am / 

    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?

  12. ryan

    November 13, 2015 at 4:46 am / 

    Hi could you release the color/texture changing script as an asset?

    1. Zosh

      November 15, 2015 at 1:15 pm / 

      I second that, release that color changing script as asset please. thanks

    2. Rene

      December 20, 2015 at 11:59 pm / 

      I love reading these articles because they’re short but inrmfoative.

    3. Mladen

      December 21, 2015 at 12:54 am / 

      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!

  13. Ashkan

    November 12, 2015 at 1:45 pm / 

    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!

    1. Alan Stagner

      November 12, 2015 at 7:22 pm / 

      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.

      1. D. Schmitt

        November 13, 2015 at 1:47 pm / 

        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.

        1. Adrian

          December 21, 2015 at 12:32 am / 

          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.

  14. pietruh

    November 12, 2015 at 10:24 am / 

    How to make a fluffy carpet like this in Unity?

    1. Paul OC

      November 12, 2015 at 1:44 pm / 


      How did you do the fluffy carpet?

      Thank you.

      1. Alan Stagner

        November 12, 2015 at 7:23 pm / 

        Looks to me like a boatload of polygon fins with some kind of cutout fluffy carpet texture applied.

        1. vulgerstal

          November 13, 2015 at 3:10 pm / 

          + probably some tesselation magic

        2. Sajithafarveen

          December 21, 2015 at 12:49 am / 

          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.

      2. Aneta

        December 20, 2015 at 11:33 pm / 

        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.)

    2. vess

      November 13, 2015 at 9:07 am / 

      It’s just a bunch of scattered quads with an opacity texture
      Make sure you restrict the rotation of the planes so that the pointy bits are pointing upwards

      1. Jake

        December 20, 2015 at 11:52 pm / 

        For the love of God, keep writing these arcielts.

  15. Robert Cupisz

    November 12, 2015 at 10:12 am / 

    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! :)

    1. ZJP

      November 12, 2015 at 9:16 pm / 

      Thanks for the reply

    2. John Doe

      November 18, 2015 at 3:43 pm / 

      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.

  16. BRavo

    November 12, 2015 at 8:25 am / 

    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.

    1. Alan Stagner

      November 12, 2015 at 7:24 pm / 

      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…

  17. Bonk

    November 12, 2015 at 5:43 am / 

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

  18. Steve Ford

    November 12, 2015 at 1:41 am / 

    What are you using for AntiAliasing?

  19. Adam Sowinski

    November 12, 2015 at 12:44 am / 

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

    1. Adam Sowinski

      November 13, 2015 at 10:41 pm / 

      It’s working now. I’ve re-downloaded the executable, it must have been corrupted.

    2. Seneral

      November 14, 2015 at 8:29 am / 

      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:)

  20. Anton Herzl

    November 12, 2015 at 12:00 am / 

    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.

  21. Alex

    November 11, 2015 at 10:49 pm / 

    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?

  22. ZJP

    November 11, 2015 at 9:18 pm / 

    What are you using for AntiAliasing?

  23. Alex Boyd

    November 11, 2015 at 4:33 pm / 

    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.

    1. Kevin Taylor

      November 11, 2015 at 11:34 pm / 

      I agree. Just a screen cap of the Lighting panel would be of help. My GI builds never look this clean.

    2. vess

      November 16, 2015 at 8:35 am / 

      It’s more or less straightforward, with resolution generally on the high side:

      The only fancier bit was increasing the Irradiance Budget and Quality from a custom set of Lightmap Parameters to get the lighting of the white walls smoother

      1. Kevin Taylor

        November 20, 2015 at 11:05 pm / 

        Thanks. Love to see the settings in the Lighting window and Parameters window if you have a moment.

  24. charlie

    November 11, 2015 at 3:35 pm / 

    Nice but far away from the UE4 to convince us to switch back to unity.

  25. JamesB

    November 11, 2015 at 2:20 pm / 

    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?

  26. Megs

    November 11, 2015 at 2:17 pm / 

    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 :)

  27. JDMulti

    November 11, 2015 at 1:39 pm / 

    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?! ;)

    1. Ahmed

      December 21, 2015 at 12:32 am / 

      I’ve been loonikg for a post like this forever (and a day)

  28. Cayl

    November 11, 2015 at 1:15 pm / 

    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?

    1. Lata

      December 20, 2015 at 11:26 pm / 

      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.

    2. Terry

      December 21, 2015 at 12:16 am / 

      Knlgoedwe wants to be free, just like these articles!

  29. Henry Loscovitch

    November 11, 2015 at 12:13 pm / 

    What are you using for AntiAliasing?

  30. AL

    November 11, 2015 at 11:29 am / 

    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.

    1. Nana

      December 21, 2015 at 12:22 am / 

      That’s a cunning answer to a chnigenllag question

  31. Martijn Dekker

    November 11, 2015 at 10:39 am / 

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

    1. Alan Stagner

      November 11, 2015 at 6:34 pm / 

      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)

  32. Gabor Furedi

    November 11, 2015 at 10:16 am / 

    Looks great. Is this supported on Metal as well?

    1. Ahmad

      December 21, 2015 at 12:14 am / 

      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.

  33. z3ntu

    November 11, 2015 at 7:37 am / 

    Now seriously: where is the Linux build?

  34. Rea

    November 11, 2015 at 4:32 am / 

    I’m interested with the Lightprobe Cage how it works actually? and when it would be available?

    1. Jesper Mortensen

      November 11, 2015 at 10:53 am / 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;-)

      1. Rea

        December 22, 2015 at 6:29 am / 

        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?

    2. Ionut

      November 11, 2015 at 11:11 am / 

      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.

      1. Rea

        November 11, 2015 at 3:22 pm / 

        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

  35. sovida

    November 11, 2015 at 3:46 am / 

    oh my!did you do some retopology?bed,pillow…

  36. vulgerstal

    November 11, 2015 at 12:49 am / 

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

    1. Alan Stagner

      November 11, 2015 at 3:54 am / 

      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.

      1. vulgerstal

        November 11, 2015 at 7:50 pm / 


  37. Darshan Shankar

    November 10, 2015 at 11:10 pm / 

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

    1. Silvia Rasheva

      November 10, 2015 at 11:40 pm / 

      Hi Darshan,
      We used a scene from Evermotion, a popular online store which specialises in archviz assets.
      Link: (added above, too).

      1. Mehmet Can Kahraman

        November 11, 2015 at 11:34 am / 

        This scene would serve as a great example for archviz starters. Please share a demo scene with free assets, or just scaled cubes and a few demo textures(textures from standard assets are fine). I would like to view how these are made, and improve them for our project;

        Texture switching menu with color picker and texture presets
        Camera scripts


        1. errexoj

          November 11, 2015 at 11:42 am / 

          those are basic generic thing completely secondary to the point of this demo
          learn about them elsewhere on the unity site
          as for the SSRR itself, it is not released, so they can not provide sources for the demo yet

        2. Michael Müller

          November 11, 2015 at 12:19 pm / 

          I would really encourage you, to release the scene even with some not so optimal furniture, with launch of Unity 5.3 and the new SSR. Even with the mentioned temporary solution of light cages. It would be also nice to see how you implemented the Interface for changing colors and texture of assets. This really can help to set up something similar in Unity.

          Cheers Michael

      2. Mori Edan

        January 4, 2016 at 11:19 pm / 

        What about the swap texture and camera action scripts? are they available on assets store?

  38. Nick Konstantoglou

    November 10, 2015 at 10:30 pm / 

    What are you using for AntiAliasing?

  39. imaginaryhuman

    November 10, 2015 at 10:08 pm / 

    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?

    1. Alan Stagner

      November 10, 2015 at 11:18 pm / 

      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).

      1. AL

        November 11, 2015 at 7:50 pm / 

        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.

        1. Alan Stagner

          November 12, 2015 at 7:18 pm / 

          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.

        2. Mohamed

          December 21, 2015 at 12:16 am / 

          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.

  40. Jack

    November 10, 2015 at 9:36 pm / 

    Super…now if I could paint my house so easily.

  41. Alan Stagner

    November 10, 2015 at 9:26 pm / 

    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

    1. Jesper Mortensen

      November 11, 2015 at 10:59 am / 

      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.

      1. Alan Stagner

        November 12, 2015 at 7:20 pm / 

        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 ;)

  42. Stefano Provenzano

    November 10, 2015 at 9:09 pm / 

    Really nice!!!

Comments are closed.