Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


14. June 2013

Kids these days with their free 3D game engines have no idea what life you used to be like!  In addition to walking 5 miles up hill in the snow, both ways, to get and from school, if we wanted to render a polygon on screen, we needed to create a polygon first!

 

I'm not really kidding either.  In the DOS and early Windows 95 days, OpenGL was only available on high end SGI workstations.  There was no 3D accelerations, there were very few game engines and those that were available were insanely expensive.  If you were creating a 3D game engine, you really needed to roll everything yourself… line drawing routines, triangle rasterizing routines ( the act of turning shapes into pixels ), everything was created from scratch and you had no hardware to help you out.  Looking back, its rather amazing how far things have come in such a short period of time!  I don't think anyone could have even fathomed the existence of the Unity game engine back in those days.  If you ever felt that OpenGL or DX11 programming was low level, you should have been programming in those days!

 

Truth told though, it was a lot of fun too.  You opened up your copy of Michael Abrash's Zen of Graphics Programming (still an amazing book!) and got to work. Perhaps most importantly, you also had a better understanding of what was going on than you do now.  Strangely enough, I struggle more now with modern shader programming than I ever did back in those days.  So, while you had to do a great deal more it was also a great deal more simple.  You were always in control of your code, something that has become less and less true.

 

So, why am I talking about this… am I having an old person moment?  No, not at all!  Or at least, I don't think so… do you recognize if you have an old person moment anyways?

 

Ok, back on track… I mention this, because oddly enough David Rousset over at MSDN is creating exactly such a tutorial series.  In his words:

So why building a 3D soft engine? Well, it’s simply because it really helps understanding how modern 3D works with our GPUs. Indeed, I’m currently learning the basics of 3D thanks to internal workshops delivered within Microsoft by the awesome David Catuhe. He’s been mastering 3D for many years now and matrices operations is hard-coded in his brain. When I was young, I was dreaming to be able to write such engines but I had the feeling it was too complex for me. Finally, you’ll see that this is not – that - complex. You simply need someone that will help you understanding the underlying principles in a simple way.

Through this series, you will learn how to project some 3D coordinates (X, Y, Z) associated to a point (a vertex) on a 2D screen, how to draw lines between each point, how to fill some triangles, to handle lights, materials and so on. This first tutorial will simply show you how to display 8 points associated to a cube and how to move them in a virtual 3D world.

He is working in higher level languages ( C#, JavaScript and TypeScript ) and isn't quite getting as low to the metal as we used to, but creating a soft engine goes a great deal lower level than most programmers ever have to go these days.

If you've ever struggled understanding HOW DX or OpenGL work, as in actually work not how to use them, running through this series would be a very good idea.  Currently part one and part two are online.  Here is the end result of part two:

 

Of course, this is all for educational purposes only!  Creating a software based 3D engine in this day and age makes about as much sense as buying a horse and buggy instead of a car.  So if you ever wanted a peek behind the curtains, you may want to keep an eye on this tutorial series.

Programming ,

blog comments powered by Disqus

Month List

Popular Comments

Substance Designer 6 Released
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


15. February 2017

 

Physically Based Rendering, PBR, has pretty much taken the world of computer graphics by storm, and Allegorithmics is at the forefront of that movement.  Today they just released Substance Designer 6.  Substance designer is a tool for creating PBR materials.  Substance designer comes with three new major features: Curve Node, Text Node and 32-bit floating point compositing.  image

The Curve Node:

The Curve node allows you to define a curve profile to remap color data. In the context of Substance Designer you will find it particularly useful to define/sculpt height maps.

The Text Node:

The Text node is pretty self-explanatory! It comes with dedicated effect filters like glow, drop shadow, and outline.  Note that the text input can also be exposed for dynamic changes in integrations! The integration plugins will soon be updated.

Another new feature of the release is Scan Processing:

New Scan Processing nodes allow you to create accurate scanned materials from a set of pre-lit photos. These photos can be shot pretty easily with minimal setup: all you need is a camera (or even a phone), a tripod and a flashlight or LED strip. Take 4 or 8 photos of the same surface with varying light angles, crop and feed them to the Scan Processor.

The filters will cross check the different photos and extract a pure albedo as well as an incredibly detailed normal map or height map, no tweaking required. It works even with shiny materials or metals!

Bakers have also been improved with the following new functionality:

  • You can now bake by material/texture set as in Substance Painter, limiting the hassle when your scene contains multiple materials.
  • The bake limit has been pushed to 8K (and will be pushed even further in a future update).
  • The X/Y ratio can be unlocked for non-uniform (non-square) baking.
  • You can (finally) cancel the baking process before it finishes :)

 

The following is a video of the new functionality in action:

 

You can read more about the release here.

GameDev News

blog comments powered by Disqus

Month List

Popular Comments