Information Clause

In accordance with the art. 13 section 1 and 2 of the European Parliament and Council Regulation 2016/679 of the 27th April, 2016 on the protection of natural persons, with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation), hereafter RODO, I hereby inform that:

1. EVERMOTION S.C., 8 Przędzalniana Str., 15-688 Białystok, Poland is the Administrator of your Personal Data (APD)

2. Data Protection Inspector can be reached through e-mail:

3. Your personal data are to be processed on the basis of art. 6 section 1 letter a, b and f of RODO in order to:
a) prepare, conclude and execute the agreement and for other purposes approved by you,
b) to execute the legitimate interest like marketing of products and the agreement, claim assertion or defence against claims resulting from the law regulations.

4. Entities entitled to the reception of your personal data may be the authorised public bodies; mail providers; providers of the services covered by the agreement; responsible for debt recovery, keeping the archives, document utilization, legal consulting, technical services, IT services and accountancy.

5. Your personal data shall not be transferred to the third country, nor to the international bodies.

6. Your personal data shall be processed within the period of the agreement and upon your additional consent until you withdraw it. APD shall keep the data for the period of any civil law claim execution connected with the agreement.

7. You have the right to demand an access to your personal data, to correct or to delete the data if there is no other basis for the processing or any other purpose of such processing or to limit the processing of the data, to transfer the data to another administrator and to raise objections to the further data processing if there is no legal basis for further processing and to withdraw any previous consent.

8. You provide the personal data voluntarily, however they are necessary to conclude the agreement. The refusal of providing such data may result in the refusal of the agreement conclusion.

9. You have the right to lodge a complaint to the Personal Data Protection Office when in your opinion the data processing violates the regulations of General Data Protection Regulation of the 27 April, 2016 (RODO).

10. Your data will be automatically processed, including the form of profiling.
11. You are obligated to forward above mentioned information to your representative, especially if you appointed this person in the agreement as the contact person or as the representative for the agreement execution.


Creating custom sky from HDR image in Unreal Engine

Michał Franczak 2017-06-29 11:08 tutorial  > Unreal Engine  > modeling

Use cubemaps to create custom sky in Unreal Engine 4.

If you are making visualizations in Unreal Engine, you can base on default blueprint BP_Skysphere that provides clouds, different sky colors and daylight variations. If you think it is limiting, you can also use some blueprints from Unreal Marketplace, like Ultra Dynamic Sky by Everett Gunther (but it costs over $34).

Here it is in action:


But, assuming you made some architectural visualizations in the past, you probably have some nice HDR images on your hard drive - and you could use them as your sky also. The problem is that they are mostly panoramic images in equirectilinear projection. And Unreal can map them on a sphere, but if you want to match lighting and environment in the best possible way, you will need a different format - a Cubemap as DDS file.

From Unreal Engine Documentation we can read that Cubemaps provide a simple method of environment mapping, in which distant scenery - such as skies and surrounding environments - is mapped to a panoramic texture. Under the hood, these textures are stored as a series of six images mapped to the inside faces of a cube.

In this tutorial I will show you a simple method to create cubemap from your HDR images. 

First, find some nice HDR image, I use some industrial interior for this tutorial. It looks like that: 


Original is in HDR format, 8000 pixels wide.

Now we need to make a cubemap out of it. There are several programs that can do that. I found that one of the easiests ways is to use Blender for that!


Open Blender and load this file. It is a simple scene with a single camera and six frames. In each frame the camera rotates and takes one shot of a part of a sphere that it's outside of it. This scene is based on a file prepared by coldacid for his tutorial. I modified it a bit to match Unreal needs.


As you can see, there is a sphere inside that has shadeless material assigned. We need to change the texture of this material



We load our HDR file



It's now in the slot



If we want to use some JPG or PNG environment map, we can use PNG output, but in our case we are using HDR image, so in Render Settings we choos Radiance HDR.



...and RGBA mode. Then we can press "Animation" on the top of Rendering panel. Blender will render six frames. Each frame will have a rotation that is accepted by Unreal. They will be rendered as this:


Cubemap layout.



Before we will open them in Photoshop, we need Nvidia Texture Tools for Adobe Photoshop. They are free to download. After you install them, you can open Photoshop and you will have new "Save as" option - DDS file. So now go ahead and open your six files.



Go to the first file and open Canvas window (CTRL-ALT-C by default). We need to place all six images in one so we choose "600 percent" and press left arrow to move the existing content to the left.



Paste the rest five images in the sequence from left to right.



Now you can save as DDS



Nvidia plugin window opens and you can choose 32 bit unsigned RGBA preset



Let's go to Unreal! First, make sure that you can see Engine Content in your browser.



Create a blueprint (Actor), name it "SkySphere_BP"



First, add mesh, name it SphereSky, go to Static Mesh browser and select SM_SkySphere, then add a Variable and name it SkyMaterial.



Go to construction script. Your variable type should be "Material". Drag a line from your "Construction Script" node and select "Set Material (SphereSky)". Attach your variable Sky Material (GET) to Material input. Make your Sky Material variable public so you will be able to change your cubemaps in the future.



Import your DDS file - it does not have the right colors and sharpness, we need to tweak some settings.



Use "UserInterface 2D compression, uncheck "sRGB" checkbox and choose "NoMipmaps" in Mip Gen Settings.



Now.let's create a material for our sphere. Use this nodes - 3-Vector goes to ReflectionVectorWS that goes into Texture Sample Parameter Cube. Select Texture Sample Parameter Cube node and select our DDS file. Then add Divide node and 1-vector as a "B" input. Connect to Emmisive slot. Material should be set as unlit, two-sided.



Place our blueprint in the scene, center it and assign material to it.



Now our interior looks correct!



Create a skylight, select "SLS specified cubemap" in Source Type and select your cubemap. This way Skylight will be using your cubemap for lighting the scene.

That's it! Thanks for reading, hope you like it! :)

Author: Michał Franczak Editor: Michal Franczak
Tags: unreal environment cubemap
You may also like...
Unreal Engine is free for teachers and students

Unreal Engine is free for teachers and students

Can be installed and used on all school owned computers and personal copies can be provided free of charge to students.


You need to be logged in to leave a comment. Don't have account? Register now.

mikekaliven87 16:17:46  |  30-06-2017
Really great lesson)
Natural Warp 13:33:11  |  27-01-2018
Hi, i'm absolutely new to unreal engine and i'm stuck with the part that should result in the 1 node Then add Divide node ( that worked ) and 1-vector ( no idea where to get the 1-vector ) as a "B" input. do please help ! THX great article btw !! would love to succeed on this one ! G.
Natural Warp 13:56:35  |  27-01-2018
guess i found it, under 'constant' with the value of '1' now i just need to get the texture right since it's giving an error on the 'Texture Sample Parameter Cube'
lanfranconi 11:48:27  |  10-03-2019
is this still the way to do it in 2019? i would be thankful if you guys could archive tutorials that are outdated, its very confusing. UE4 is not able to import any .DDS files, so I don't know why this is mentioned here?