Jump to content
  • Advertisement
Sign in to follow this  
j83

Good or bad idea for a beginning project? (software rendered model viewer)

This topic is 3210 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

Hey, While learning C++, I had the idea of starting out just trying to build a very, very basic software rendered model view/mesh. I'm sure there is a lot involved, but it will be a good learning experience to a programming beginner such as myself I guess. Any suggested tutorials on C++ software renderers (raytraced or rasterized), or is this a too-complex idea? It would be a fun one, I would imagine. If that *isn't* a good idea, then I'd like to start building a simple model viewer with ISO/ANSI C++ and DirectX. Thanks for any suggestions. :) (this is to be done while I'm going through Beginning Visual C++ 2008 from WROX, a pretty detail-rich book) [Edited by - j83 on November 4, 2009 6:34:46 AM]

Share this post


Link to post
Share on other sites
Advertisement
Try it out and see how far you go. No matter what you do you will get experience from it. If you decide it's a little bit over your head than just switch to something else and go back to it later. Completing projects isnt as important as just coding. The more you write, the more you'll see patterns and ways of doing things that are better than other ways, and that is what you really want to learn. It's not about the language in most cases, it's your problem solving abilities and having them increase. Good luck with whatever you do.

Share this post


Link to post
Share on other sites
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-837Fall2003/CourseHome/

This class leads you through developing a raytracer in C++. All the course materials are on there for free, and I myself have done the homework assignments (except for the last one). They are well laid out and a really good intro. One warning is that the code is a mixture of C and C++ techniques, but the point of this class was to learn the graphics techniques and not programming idioms anyway.

Share this post


Link to post
Share on other sites
I think this isnt a bad idea, as long as you've done some more basic programs before, and have a basic grasp of the language.
Actually, my third, or fourth program was a software renderer, that I wrote a decade ago, and in that time, I didnt have internet nor books, so it is definitely doable, especially with all the info you can find in the net.

For links, hmm, this one looks good enough.

Share this post


Link to post
Share on other sites
Quote:
Original post by phear-
Completing projects isnt as important as just coding. The more you write, the more you'll see patterns and ways of doing things that are better than other ways, and that is what you really want to learn.


No, it's all about completing things, and nothing else.

If one leaves the project in the middle, it will usually happen when encountering something unknown or difficult or not fun. That is when the real learning begins.

For example, one can learn C arrays. But when trying to resize them, one would prefer to stay in comfort zone, and instead abandon the project, or simply solve the problem by allocating array large enough to hold current problem set ("works for me").

Instead, doing it the hard way, solving the problem entirely by biting into vector<> would be a much more productive way.

Coding for the sake of writing lines of code is the very anti-thesis of learning.

Share this post


Link to post
Share on other sites
You all have been truly helpful and thank you for your contributions. I'll report back with my progress as time permits.

Share this post


Link to post
Share on other sites
Quote:
Original post by Antheus
Quote:
Original post by phear-
Completing projects isnt as important as just coding. The more you write, the more you'll see patterns and ways of doing things that are better than other ways, and that is what you really want to learn.


No, it's all about completing things, and nothing else.

If one leaves the project in the middle, it will usually happen when encountering something unknown or difficult or not fun. That is when the real learning begins.

Coding for the sake of writing lines of code is the very anti-thesis of learning.


In the other part of my post I said that problem solving is the most important part of learning which I see you agree with. Problems abstractly share similarities with other problems, thus the more problems you can solve the better and faster you can create a solution to a given problem. Yes I dont think that a person should stop a project because they get stuck at a problem. That is counter-productive. But there are many reasons to stop a project, like time or budget or lack of motivation to continue. How many times have you stopped making a game or piece of software because you found what it did doesnt work or you dont find it useful anymore? It happens. I've left game projects before because after building the prototype I realize that it's just not fun in person, only in theory. To say that the most likely reason someone leaves a project is because of a problem that is unsolved is entirely untrue as people discontinue work on projects all the time.

Quote:
Original post by Antheus
Coding for the sake of writing lines of code is the very anti-thesis of learning.


Quote:
Original post by phear-
It's not about the language in most cases, it's your problem solving abilities and having them increase.

Share this post


Link to post
Share on other sites
Quote:
Original post by j83
If that *isn't* a good idea, then I'd like to start building a simple model viewer with ISO/ANSI C++ and DirectX.

It sounds like a quite big step to a 3D model viewer, where are you starting from?

What I think of is that a model viewer needs graphics output (more advanced than text output), and possibly some user input.

If you would find a renderer-tutorial based on Win32 (windows, input, 2D graphics etc.) that may steal your focus from the rendering itself, depending on how used you are to API's and libraries?

DirectX is also usually coded on top of Win32, or MFC (modern version of Win32) or the newest .NET development kit.

If you want to focus directly on software graphics programming, then I think the SDL site can be a good place to start: http://www.libsdl.org/
It requires less code for creating a window and lets you code pixel-based graphics relatively easy.

I can have no idea whether you have coded graphics yet, but it seems reasonable to do some graphics first and then start thinking of how model rendering can be implemented with those graphics capabilities.

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!