• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
sektion31

Time to learn writing a 3D rendering engine from scratch

8 posts in this topic

Hello graphic technicians,

so I choose this topic name since I kinda have the same goal, but totally different intentions and knowledge in this field, as the TS of the original topic.

I am a computer science student at a college of applied sciences in Germany. I have finished all my courses and now I am starting my work on my bachelor thesis. Starting means finding a topic and doing research at the moment for me. I worked on a non graphic related idea so far but dropped it recently since I wasn't enjoying what i was doing. It had to do with storage management and deduplication. So now I want to try something different. Something I am personally interested in but unfortunately had no chance in getting more into it so far: computer graphics. The problem is we don't really have a professor who is specialized in this field. Which mainly is why I have no experience here.
The nearest thing I did was a course about audio & video programming lectured by a prof. who worked at [url="http://www.steinberg.net/en/home.html"]steinberg[/url]. Off him I learned my basic C++ skills.

So I was thinking about a good way (project) to learn about graphical programming which I an turn into an bachelors thesis if things go right. Since I have non experience whatsoever I want to start whatever project from scratch. A rendering engine strikes me as the a very basic element of any graphical program so I think it would fit the theme of understanding the fundamentals. Also the idea would be to find a more specific subject for my bachelor thesis once I got to know the field better. But in the end it will surely not be a highly elaborate thesis.

Here come the questions: What books can you recommend for me? I am looking for graphic related literature as well as something to get better in C++. What do you think of starting with a rendering engine? Would it be smarter to pic a different topic?

thanks
let this be the start of a new beginning
0

Share this post


Link to post
Share on other sites
The Ron Fosner OpenGL for Windows book I learned with about 16 years ago (also the Red and Blue books are good references).

[url="http://www.amazon.com/OpenGL-Programming-Windows-95-NT/dp/0201407094"]http://www.amazon.com/OpenGL-Programming-Windows-95-NT/dp/0201407094[/url]

I also loved the Watt and Watt book though it's now 20 years old but can be had cheap (great coverage of Quaternions and other things).

[url="http://www.amazon.com/Advanced-Animation-Rendering-Techniques-Alan/dp/0201544121/ref=sr_1_7?s=books&ie=UTF8&qid=1352235543&sr=1-7&keywords=watt+graphics"]http://www.amazon.com/Advanced-Animation-Rendering-Techniques-Alan/dp/0201544121/ref=sr_1_7?s=books&ie=UTF8&qid=1352235543&sr=1-7&keywords=watt+graphics[/url]

Dave Eberly has a good book on [url="http://www.amazon.com/Game-Engine-Design-Second-Interactive/dp/0122290631/ref=sr_1_2?s=books&ie=UTF8&qid=1352235613&sr=1-2&keywords=eberly+game+engine+design"]Game Engine design[/url] (along with lots of tools at WildMagic).

The key is to choose a project that you are highly motivated by, and then do what it takes to get it working. I prefer low level OpenGL to tooklits like glut but that's your call.

Good luck.
1

Share this post


Link to post
Share on other sites
When you want to learn about real time rendering, [url="http://www.amazon.de/Real-time-Rendering-Tomas-Akenine-M%C3%B6ller/dp/1568814240/ref=sr_1_1?ie=UTF8&qid=1352297415&sr=8-1"]this[/url] book is a must have.

[quote name='sektion31' timestamp='1352218867' post='4998084']
A rendering engine strikes me as the a very basic element of any graphical program
[/quote]
Yes, it is the basic element, but it is not really [i]basic[/i]. Rendering engines are the most scientific part of a game engine and far from easy or basic. A enthralling topic is always global illumination. You should consider to take an existing rendering engine (open source like ogre) and expand it with a special technique, but I would sugguest to learn about the choosen technique, software, tools before diving head on into your thesis (the impact could be quite heavy).
2

Share this post


Link to post
Share on other sites
@bigneil
thanks for your suggestions. i know that often one doesnt need the newest books to learn fundamental knowledge, but 20years seems a little bit old. especially for computer graphics.

@Ashaman73
this books is suggested quite often and gabe newell says its worth it, so i guess its a save buy. but can you tell me if it covers solutions for lesser complex problems, as well?

[quote]Yes, it is the basic element, but it is not really basic. Rendering engines are the most scientific part of a game engine and far from easy or basic. A enthralling topic is always global illumination. You should consider to take an existing rendering engine (open source like ogre) and expand it with a special technique, but I would sugguest to learn about the choosen technique, software, tools before diving head on into your thesis (the impact could be quite heavy).[/quote]
yes. my thinking was that building a renderer without illumination (meaning everything just is illuminated), shading and physics could be a simple enough, yet challenging first project. my question here is if my approach makes sense. maybe i'm going too far back. if new renderers are rarely written from scratch, then maybe i should start on learning how illumination works, instead of how to draw cubes.

as my very first contact with opengl i think i will work through these: http://www.opengl-tutorial.org/ Edited by sektion31
0

Share this post


Link to post
Share on other sites
Best book on the topic by far is:
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_1?ie=UTF8&qid=1352312361&sr=8-1&keywords=game+engine+architecture

Should give you a number of ideas to get started, and very useful details too.
0

Share this post


Link to post
Share on other sites
[quote name='sektion31' timestamp='1352310290' post='4998493']
without illumination (meaning everything just is illuminated), shading and physics could be a simple enough
[/quote]
It is a natural behaviour, that people tend to underestimate the amount of work necessary if they do not have experiences and knowledge in the target area. So, an engine is really a vague term. Do you want to add an existing phyiscs engine or build up your own. The latter is a show stopper.

How long do you have time to write your thesis, 6-9 month ? Do not underestimate the amount of work needed to write actual a 80-120 page document. If you need to write an whole engine, there are so many factors you need to consider and parts which could break, that I would recommend to tone down your goals. To left illumination from a rendering engine is like a car without engine. It must not be the super cool global illumination implementation, but some basic lighting shaders should be in.
0

Share this post


Link to post
Share on other sites
[quote name='sektion31' timestamp='1352218867' post='4998084']
I am starting my work on my bachelor thesis. Starting means finding a topic and doing research at the moment for me. ... The problem is we don't really have a professor who is specialized in this field. Which mainly is why I have no experience here.
The nearest thing I did was a course about audio & video programming lectured by a prof. who worked at steinberg. Off him I learned my basic C++ skills.

So I was thinking about a good way (project) to learn about graphical programming which I an turn into an bachelors thesis if things go right.
[/quote]Caution advised. Before carrying on, I strongly suggest to check your professor again to see if they welcome the change.
Back when I was attending university we had an official 3D graphics course. Apparently, rendering 50 lights per pass didn't impress them (in 2005 I think).
By contrast, the stupid scripting language used as scene description made them go crazy.
The university I attended had a reputation for being very theorical (over 75% of the courses didn't involve a real world processing device). I had the impression they didn't like my hands-on approach in general.
So, are you 100% sure they would welcome a thesis which appears to be not in their current skill set?

As much as I hate to write this, your goal is not to do what you want. Is to reach your target. Edited by Krohm
0

Share this post


Link to post
Share on other sites
[quote name='Ashaman73' timestamp='1352357615' post='4998765']
[quote name='sektion31' timestamp='1352310290' post='4998493']
without illumination (meaning everything just is illuminated), shading and physics could be a simple enough[/quote]
It is a natural behaviour, that people tend to underestimate the amount of work necessary if they do not have experiences and knowledge in the target area. So, an engine is really a vague term. Do you want to add an existing phyiscs engine or build up your own. The latter is a show stopper.[/quote]
What I meant was that writing a renderer without illumination, without physics and without shading. How long would it take in your eyes for someone like me to finish such a very basic renderer? My time frame is difficult to say. It sounds weird but I will be working on a cruse ship till mid april, starting from december. I want to spend my spare working on my thesis, which I will not start officially before I come back. I know for a fact, that I will have some free time to do so. I talked to my professor about this yesterday and he is fine with it. He is also very liberal on choosing the topic, although he would like to see me more in the 2D world working on face recognition for example.


[quote name='Krohm' timestamp='1352360572' post='4998774']As much as I hate to write this, your goal is not to do what you want. Is to reach your target. [/quote]
Hopefully I can make my target what I want it to be. Right now I couldn't define one.

Yesterday I figured out, that my Intel GM965 graphics card, that I wanted to take on the cruse does only support openGL 2.0 under Windows and openGL 2.1 under Linux. Do you think this would limit my learning on recent openGL programming technology? The API did change a lot as I hear and I do remember the the stories about openGL 3.1 beeing the real 3.0. If so I am thinking on buying a new (but used) laptop for me. [url="http://www.ebay.de/itm/Lenovo-IBM-THINKPAD-T500-15-4-C2D-T9400-2x2-53Ghz-v5700-2GB-160GB-DVDR-Notebook-/400335540265?pt=DE_Technik_Computer_Peripherieger%C3%A4te_Notebooks&hash=item5d35db9029"]something like this i guess[/url]. The other option would be to program for my android phone.
How do you stand on openGL ES? Does it differ a lot from openGL, say 3.3 or is it more of a stripped down version? Does it make sense to learn openGL first Edited by sektion31
0

Share this post


Link to post
Share on other sites
Wow, great to know.
You absolutely need at least GL2. I cannot say much because I switched to D3D some time ago... after having to deal with Intel graphics. Intel does really good processors but their integrated graphics is inadeguate even for something having half the clockrate and two generations behind.

Personally, rather than buying a core2 duo, I'd buy something with a AMD Trinity processor. The graphics performance is awesome and CPU performance is adeguate for learning purposes. Processor aside, the graphics used in that laptop is obsolete. Edited by Krohm
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0