Download

Engine Features Preview 1/22/2015

We’re excited to share a few of the new features now available on the Master branch on GitHub. To be able to try out these new features, you will need to download the source code for the Master branch and build the Engine yourself. For more information about how to build the Engine from source code, please see this page. The Master branch on GitHub is constantly being updated and is not quality tested so it may be potentially unstable. We do not recommend using the Master branch for project development. If you wish to wait, these features will be made available to all in an upcoming official release.

Engine News

New Features

C++ Classes are now visible in the Content Browser

The Content Browser now has a new folder for your game’s C++ Classes! You can create new classes and Blueprints by right clicking, or double-click to jump straight to the C++ source code.

This shows all C++ classes in your game that are visible to the editor (any “UCLASS”.) These new root folders host the available C++ modules for your project, with each module folder mirroring the source code layout on disk.

1.png&stc=1

With a C++ folder selected, the “Add New” button can be used to create a new C++ class.

2.png&stc=1

The right click menu for classes allows you to easily create a new derived class

3.png&stc=1

Adding a new C++ class will automatically “hot reload” the code and display the new class in the browser. You can start using it in the editor right away!

Should you prefer to handle building and loading your modules manually, you can disable the automatic hot-reload via “Editor Settings” -> “Miscellaneous” -> “Hot Reload” -> “Automatically Hot Reload New Classes”.

Note that you can also display built-in “Engine C++ Classes” by toggling the “Show Engine Content” option in the Content Browser’s View Options drop-down menu.

New Diffuse Shading Model

We just switched our shading model to use a more accurate diffuse model. Previously we were using Lambert diffuse which reflects the same constant color in all directions. It is very simple and has been used in CG for a long time. It is not that physically accurate but is very cheap. For a small cost we can do better. The new model is an energy conserving Burley diffuse model.

This more accurately models:
Diffuse flattening that happens with rougher surfaces. The moon looks like a disk instead of a sphere because it is extremely rough.
Retroreflection which is brightening of diffuse at glancing angles for rough surfaces
Energy conservation between diffuse and Specular, which makes glancing reflections more realistic. Notice the edges of smooth surfaces do not seem to glow anymore.

Overall the balls appear to have a more even brightness over the roughness range and roughness has a more visible impact at higher values than before. Before it only affected specular.

Old

&stc=1

New

&stc=1

Hell yes, it’s really good to see that there is further disney-inspired improvements coming to the renderer. Do you have any estimation on when diffuse cubemap lighting will work properly, as it probably will further push the quality bar, especially on very rough materials.

A few questions regarding the C++ content:

  1. The screenshot now shows content being split into “C++ Classes” and “Content”. Is this a new way of displaying folders or is that just the particular folder structure of that project?
  2. If it’s the former, the C++ Classes folder, that’s basically just the Source folder of the game?
  3. Are all classes shown in there, even those created via VS?

I believe that’s all for now…

Looking at that sphere comparison reminds me of an adage I once heard about how “everything has Fresnel”; nice to see it implemented automatically at the shader level.

The difference is subtle but meaningful. At low roughness values / high reflective values I can’t see a difference.

But now I worry that this change in the default diffuse lighting methodology will break my cel shader spectacularly by creating a more realistic coloration that isn’t actually desired. Lol.

Just to make the difference a bit clearer :slight_smile: (Shame about GIF’s artifacts!)

Hi there!
As for new BRDF model - is there measurements about its cost? New model is definitely more correct, but it also costs more.
I suppose it can be crucial for mobiles. Is there some way to enable old diffuse?

Thanks

The c++ addition presents a new and exciting workflow. It sounds really cool, Great work!

You guys should really do a preview of the unified blueprint editor, I’m loving it! Also the new icons for all the different blueprint types is nifty. Its much easier to see one type of Blueprint over another making visually looking for a file much easier! Keep up the good work!:smiley:

What is this you speak of??? I must know

Wasn’t UE4 using GGX before, so does this mean GGX is out in favour of Burley diffuse model?

UE4 was using lamber as diffuse shading.

Ggx specular, lambertian diffuse. Now we’re in sync with Pixar, as far as I know they use ggx also.

No one knows about the new C++ stuff? Reposting for bump.

It is the new way to display folders.

Correct.

As far as I can see, it only shows UObjects like Actors, so no “pure” C++ classes or structs.

We show multiple “C++ Classes” folders, one for your project (shown as “Game C++ Classes” in that screenshot, but will just be called “C++ Classes” on release), one for the Engine (“Engine C++ Classes”), and then one for each plugin that has code (eg, “Paper2D C++ Classes”).

Each of these contains folders for any modules that belong to that category (you can’t really tell that in the screenshot as ShooterGame only has one module with UObject-based classes), and then each of these module folders mirror that modules layout on disk.

It currently only shows UObject-based classes, so you’ll only see classes tagged as UCLASS.

We are on 4.5.1. Did you guys do anything more than switch the default diffuse BRDF shader define from Lambertian to Burley? Or are there shader code improvements to go along with this change as well?

Jesse

From what I looked at commit, there were some changes all around shader code. It doesn’t look like simple switch.

Thanks for the info… So, seeing that the Trello roadmap has an entry for showing basically all source classes, I assume that you’re moving toward having scripts appear as just another resource type in the Content Browser?

Yeah, we don’t have a final timeline on this yet, but these changes are phase 1 of a longer-term plan to allow the Content Browser to show you more things (source files, configs, etc).

Awesome, glad you like it. I think we are still messing around with the layout and gathering feedback on the obvious/weird things before we showcase it. It will definitely be in 4.7 but we probably won’t advertise it much until next week’s Engine Features Preview. Maybe we’ll show it on Twitch though. Actually we have a lot of cool late additions to 4.7 to talk about.

–Mike