Jump to content
  • Advertisement
Sign in to follow this  
Yann ALET

Is Unreal Engine a good start to learn rendering ?

This topic is 1320 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there,

 

If you want to learn rendering programming. Is it really a smart move to start with working on your own engine ?
 
The more i think about it, the more i think it should be the opposite.
 
What do you guys think ?

Share this post


Link to post
Share on other sites
Advertisement

If you have no experience with Graphics Programming, then chances are very high you will be overwhelmed.

Your best bet is to work on small samples/ work through some tutorials to start learning the basics. Later down the road you can take a look at UE source to see how they solve certain problems.

 

If looking at the source works for you, then go for it. Its justa  lot harder to learn by looking at only the solution, without understanding the problem that its solving. The why is just as important as the how.

Share this post


Link to post
Share on other sites

I'm not really familiar at all with the details of their engine, but I would imagine that it's probably a great reference for learning how to integrate rendering techniques into an engine, and probably not such a great reference for understanding the techniques themselves. I'm sure if you look at their code, you're going to find tons of code dedicated to handling the various details of their content authoring and packaging pipeline, adding gameplay/scripting hooks, and and making the output of a technique work in harmony with the other rendering features.

Share this post


Link to post
Share on other sites


If you want to learn rendering programming. Is it really a smart move to start with working on your own engine ?
 
The more i think about it, the more i think it should be the opposite.
Why is that so?

Share this post


Link to post
Share on other sites

 


If you want to learn rendering programming. Is it really a smart move to start with working on your own engine ?
 
The more i think about it, the more i think it should be the opposite.
Why is that so?

 

 

 

Well, i think it takes a massive part out of the equation, and allow you to focus on one thing because you know the rest if working properly.

 

It's like, if I wanted to wanted to create heads up display for cars, should i start by building the actual car, research how a combustion engine works, aerodynamics, etc... and once the car is kind of working, start working on the actual dashboard hopping the electronic i setup won't fail me and send me wrong inputs & metrics ?

 

I remember at some point i wanted to have a proper sky, and i found this guy making a good one in GLSL : http://devlog-martinsh.blogspot.ca/2013/11/waterunderwater-sky-shader-update-03.html

I only studied HLSL, so i needed to port it. The original shader was quite complex and i was having a hard time implementing it. I wasn't sure the problem came from my HLSL code, or actual engine feeding wrong values to the shader. So i decided to port it in 3DSMax first, and it worked wonders. I had immediate feedback and lot more tools to experiment (sliders for shader constants and such). This allowed me to have a better understanding of the shader, and i easily implemented it in my engine afterward.

I didn't have to worry about things like properly computing normals as Max was doing it for me (i had to at some point in my engine, but i knew my shader code was correct at that point).

 

Now i want to study effects like DOF, chromatic aberration, and film grains. I can't help to think it will be a lot easier to implement this in a shader graph node editor, and once it works, try to break it down in actual HLSL.

Edited by Ady

Share this post


Link to post
Share on other sites

Sure but shaders aren't all there is to rendering.

 

If you want to learn the GPU  API underpinnings and all the basic foundations of a renderer (perspective projections, world transforms, assembling model data, texture mapping, render targets, etc) it'll be very tough to learn it from the engine's sources, you'll be looking at one big and complex rendering pipeline implementation for sure.

 

Now if what you want is to expand your knowledge on shaders, yeah, I suppose using UE4 should give you what you need to experiment with them.

Share this post


Link to post
Share on other sites

Unreal is great if you understand what it is you want to get out of it... but if you want to learn about how various rendering techniques work, it's probably a better idea to start from the very basics. 

 

Rastertek (http://www.rastertek.com/tutindex.html) is an excellent resource for learning all about the rendering pipeline.

 

Once you have a grasp on how things fit together, how shaders work and the various methods of drawing pixels on the screen (deferred rendering for example), then Unreal takes all of the grunt work away and lets you focus on creating content.

Edited by Orangeatang

Share this post


Link to post
Share on other sites

Gotcha ... I guess i'll use both :-)

 

I can see how important it is to have strong fondations, but sometimes it helps to see the end results and all the required inputs to know why you'll have to build this input in your engine.

Share this post


Link to post
Share on other sites
If your goal is to learn how rendering works, then building your engine will be a great journey.
Think about it:
- your first window
- your first triangle/poly
- rendering an object
- making a camera
....
- your own shaders

And so on.
You could get a book as a starting point, for example dx 11 book from frank d luna (assuming you "know" and can code in c++)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!