Skip to main content
GameDev.net gamedev.net
🔒 Locked

How to learn advanced CryEngine type graphics technologies

Started by ynkm169 Apr 29, 2015 at 6:58 PM 14 replies 3.7k views
Original Post
ynkm169
ynkm169

I want to learn the latest set of all computer graphics techniques applied in current generation of game engines.

NO WHERE TO FIND GOOD BOOKS. Amazon seem mostly have older generation books or just beginner ones.

I need to learn all sorts of techniques and tricks like tile based deferred lighting. But I need a book or resources to find and learn all of the techniques, not just looking randomly at some hard-to-read PHD type theory articles which nobody understands.

I also don't want ambiguous stuff like CryEngine slides. Got the idea but don't understand anything.....

http://www.crytek.com/cryengine/presentations/cryengine-3-rendering-techniques

ynkm169
ynkm169

I actually found ebook of these two:

GPU pro 3,

GPU pro 4.

They are pretty dam good from the looks of it.smile.png

Any other suggestions are welcome!

jpetrie
jpetrie

The reason you don't find good books on this subject is that nobody wants to write them. They are time-consuming to author and have fairly poor shelf life and return on investment.

Further, such books are mainly suited to "cookbook" style approaches where they can present solutions that are not terribly deep. Implementing the complex graphical effects you see in modern games is a large undertaking involving a lot of work on art and code that applies specifically to the pipeline of the toolchain you're working with. There's no secret library of shaders you can copy-and-paste to suddenly get things that look like they came from Unreal engine. Books tend to have to focus on things that are simple: shaders, a few notes on how geometry should be authored and feed through the pipeline, and little else. Those amazing graphics you see in games are more than that, they are the product of clever engineers adapting their existing systems to the task at hand, and talented artists understanding the limitations and implementation their art pipeline.

You won't find that in a book.

Plus, the purely algorithmic aspect of graphics is already well-served by the academic sector, which publishes hundreds of papers on new techniques and ways to achieve certain kinds of effects or simulations every year. If that's what you're after, get yourself access to one of the various academic paper repositories or read the SIGGRAPH and related conference papers, and so on.

Above all: practice. You'll never get the kind of graphics you're looking for by applying what you've read about unthinking. Experiment with your tools, try things. Practice is most important.

ynkm169
ynkm169

The reason you don't find good books on this subject is that nobody wants to write them. They are time-consuming to author and have fairly poor shelf life and return on investment.

Further, such books are mainly suited to "cookbook" style approaches where they can present solutions that are not terribly deep. Implementing the complex graphical effects you see in modern games is a large undertaking involving a lot of work on art and code that applies specifically to the pipeline of the toolchain you're working with. There's no secret library of shaders you can copy-and-paste to suddenly get things that look like they came from Unreal engine. Books tend to have to focus on things that are simple: shaders, a few notes on how geometry should be authored and feed through the pipeline, and little else. Those amazing graphics you see in games are more than that, they are the product of clever engineers adapting their existing systems to the task at hand, and talented artists understanding the limitations and implementation their art pipeline.

You won't find that in a book.

Plus, the purely algorithmic aspect of graphics is already well-served by the academic sector, which publishes hundreds of papers on new techniques and ways to achieve certain kinds of effects or simulations every year. If that's what you're after, get yourself access to one of the various academic paper repositories or read the SIGGRAPH and related conference papers, and so on.

Above all: practice. You'll never get the kind of graphics you're looking for by applying what you've read about unthinking. Experiment with your tools, try things. Practice is most important.

Thanks Josh, that's a good perspective on explaining why these materials are lacking and some approaches of getting better.

There are really only a few good cutting edge games using own engines out there. So the talents are mostly centered in those few companies. There are really no industry wide common solutions to most of the problems. Most are created and adapted by the few really experienced graphics engineers. They don't really have incentives and in some cases they are prohibited by their own companies on writing clearly explained full solutions that would help everybody.

Radikalizm
Radikalizm

not just looking randomly at some hard-to-read PHD type theory articles which nobody understands.

There's plenty of people who can read and understand these, and if you want to rub shoulders with the big guys it'll be in your best interest to learn how to read and understand these yourself. If you're interested in writing cutting edge graphics code it's going to be better in the long run to work on your own skills instead of asking people to spend their valuable time to dumb down content so you don't have to put in any effort smile.png


There are really no industry wide common solutions to most of the problems.

Every game is unique, every development situation is unique. Techniques have to be adapted to fit a certain scenario, therefore there generally are no cookie cutter solutions.

I gets all your texture budgets!
kalle_h
kalle_h

Ambiguous slides are great because then you need to think about the problem a bit. Spoon feeding whole solution does not help in long run at all.

Unreal engine 4 sources are open and produce top notch quality there are also tons of reading material about it.

TheChubu
TheChubu

Ambiguous slides are great because then you need to think about the problem a bit.

Eh, sometimes you can clearly see the author just doesn't wants to spill his precious beans. When I see that I don't see it like "Oooh, learning opportunity!" I see it more as "Oh, what an asshole!". If you do research and you publish it, you explain it properly, otherwise don't publish at all since it becomes just a matter of showing off at that point.

On the other hand, plenty of material is oriented for people "in the know" which is different from trying to obfuscate the content. Just don't expect introductory coursers from things that aren't introductory courses.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"   My journals: dustArtemis ECS framework and 
phil_t
phil_t




GPU pro 3,
GPU pro 4.

They are pretty dam good from the looks of it.

Those are good books, but even then you'll need to understand things pretty well to implement them. You'll often find shader code snippets that don't compile or don't match the article. I recall implementing the crytek wind animations for vegetation (it's in one of GPU pro books, GPU gems, or the ShaderX series or something like that), and it was fairly frustrating because the algorithm description in the article conflicted quite a bit with what was in the shader snippets provided.

Like someone else mentioned, these articles tend to be put together hastily, so don't expect polished "cut-and-paste" solutions. You'll really need to have a pretty thorough understanding of things in order to implement them.

Hodgman
Hodgman
The latest techniques used in the latest games is almost by definition new research, the opposite of textbook tutorials.

Read the incomprehensible research ppublications, and collections of older techniques like in GPU Gems, Shader X, and GPU Pro.
kalle_h
kalle_h

Ambiguous slides are great because then you need to think about the problem a bit.

Eh, sometimes you can clearly see the author just doesn't wants to spill his precious beans. When I see that I don't see it like "Oooh, learning opportunity!" I see it more as "Oh, what an asshole!". If you do research and you publish it, you explain it properly, otherwise don't publish at all since it becomes just a matter of showing off at that point.

Even showing off is better than nothing. Sometimes you just want to get some new ideas not how they should be implemented.

Just found this blog that talks about more on this.

http://c0de517e.blogspot.fi/2015/04/sharing-is-caring.html

Matias Goldberg
Matias Goldberg

Ambiguous slides are great because then you need to think about the problem a bit.

Eh, sometimes you can clearly see the author just doesn't wants to spill his precious beans. When I see that I don't see it like "Oooh, learning opportunity!" I see it more as "Oh, what an asshole!". If you do research and you publish it, you explain it properly, otherwise don't publish at all since it becomes just a matter of showing off at that point.

Even showing off is better than nothing. Sometimes you just want to get some new ideas not how they should be implemented.

Just found this blog that talks about more on this.

http://c0de517e.blogspot.fi/2015/04/sharing-is-caring.html

He's referring to many of research papers, often coming from universities, that do this (present a new technique with no code or means to reproduce the results) making it useless for any practical purpose.

CryTek's slides are a bit different because they're just explaining 'this is what we did'. It is already proven to work (it's in their games) and obviously they won't give you everything in silver plate to reap off their efforts w/ copy pasting. They give enough to figure the technique on your own.

Of course the more they share, the better.

cozzie
cozzie
I strongly agree with josh petrie, that practice is the key (accompanied by articles, books, forums etc).
What I would do, is define the exact result I want to achieve, then strip that to the needed techniques and for each technique start coding, google tutorials/books and examples and bit by bit achieve the aimed result. "all modern cool features of cry engine 3" doesn't give accurate enough results :)

For example, you mentioned that you want to achieve tilebased deferred lighting. Let's give this one a go:

- create a test 3d scene
- load and render it with a forward lighting shader and a camera
If so far, so good
- move from forward to deferred, that way understanding how deferred rendering/ lighting works
- once you master both, look for articles etc. On tilebased rendering
- start implementing, ask explicit questions on gd.net when you have an issue :)
Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me
frob
frob

Hopefully not sounding too much like a broken record....

The basics are the basics. They are old hat. You need to read the old books. Read about the compilation models and how things work. Read compiler theory. Read about computer architecture. The PC's architecture saw its last big revolution in 1995 with the Out of Order Core, and graphics in the early 2000's with the programmable pipeline and shaders.

But the interesting stuff is new research. I've got a bookshelf next to me filled with non-CS books, and CS-related research papers and conference proceedings going back about 15 years. It isn't just CS stuff, I've got three fairly recent psychology books on my desk --- to be completely honest I'm using them to stand my monitor up a little higher now that I read them --- but note that there is so much to game development than computer science. Psychology, world history, world religions, mathematics (lots of that!), physics, art theory, music theory, I've even got a few books on cartography (some questions you might not have thought significant about maps: how much should you include on your map based on scale? What are the standard symbols? What are alternative map styles that people have used over centuries? Are there other map styles, like route maps, economic maps, thematic maps, and travel landmark maps, that we can leverage rather than the more common physical feature map? ) and other topics on my bookshelf.

The mathematics and core structures and algorithms in game development do not need new books. If you want to learn the graphics technologies, first get a solid understanding of linear algebra, iterative mathematics, discrete mathematics, and calculus. There are many old but excellent books on the subjects. Get a solid understanding of the core algorithms and data structures used in CS. Once you understand the subjects you've got the basic tools you need.

Then apply those tools to all the recent research at conferences like siggraph, sigchi, infovis, vast, and many more. There is far more than you can ever read, just look over the lists from conferences and pick something to read every few weeks and pick something that catches your eye.

ynkm169
ynkm169

Thanks guys for all of your thoughts.

GPU PRO 1

GPU PRO 2

GPU PRO 3

GPU PRO 4

GPU PRO 5

I roughly looked through all of these books. Actually they are still very advanced and hard to understand.

What I figured out to get to CryEngine graphics level of knowledge (not skills):

1.Read all basics (Ray tracing from the ground up book is one of the best I find so far, it actually explains basic theories of photorealism, then you will understand advanced rendering techniques better, since those techniques mostly are trying to acheive what Ray tracing can actually do, well, in real time)

2.Gradually expands basics. Someday you will understand everything including the CryEngine slides.

3.Carefully choose your learning curve from basics to advanced.

(This is also a more dependable way of learning, what if you are developing next CryEngine100 someday? there won't be a book about it)

ynkm169
ynkm169

Hopefully not sounding too much like a broken record....

The basics are the basics. They are old hat. You need to read the old books. Read about the compilation models and how things work. Read compiler theory. Read about computer architecture. The PC's architecture saw its last big revolution in 1995 with the Out of Order Core, and graphics in the early 2000's with the programmable pipeline and shaders.

But the interesting stuff is new research. I've got a bookshelf next to me filled with non-CS books, and CS-related research papers and conference proceedings going back about 15 years. It isn't just CS stuff, I've got three fairly recent psychology books on my desk --- to be completely honest I'm using them to stand my monitor up a little higher now that I read them --- but note that there is so much to game development than computer science. Psychology, world history, world religions, mathematics (lots of that!), physics, art theory, music theory, I've even got a few books on cartography (some questions you might not have thought significant about maps: how much should you include on your map based on scale? What are the standard symbols? What are alternative map styles that people have used over centuries? Are there other map styles, like route maps, economic maps, thematic maps, and travel landmark maps, that we can leverage rather than the more common physical feature map? ) and other topics on my bookshelf.

The mathematics and core structures and algorithms in game development do not need new books. If you want to learn the graphics technologies, first get a solid understanding of linear algebra, iterative mathematics, discrete mathematics, and calculus. There are many old but excellent books on the subjects. Get a solid understanding of the core algorithms and data structures used in CS. Once you understand the subjects you've got the basic tools you need.

Then apply those tools to all the recent research at conferences like siggraph, sigchi, infovis, vast, and many more. There is far more than you can ever read, just look over the lists from conferences and pick something to read every few weeks and pick something that catches your eye.

Very thoughtful. That's GOOD IDEA.

You know John Carmack Reverse algorithm? Basically John Carmack invented volum shadom algorithm himself after someone already wrote a paper about it.

There is hardly anyway you John Carmack would have spent time to actually try to find that paper. Instead he did it himself based on basic knowledge.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.