PDA

View Full Version : hot to learn 3d?



xoxos
05-13-2012, 07:46 PM
sorry for the inevitable, white bread enquiry

i sussed the concept of the frustrum independently and devised my preferred 3d to 2d projection (got it jotted somewhere.. it alleviates the distortion of object in the corners to some degree) but i've had a jolly bad time securing free resources for learning 3d graphics. it's one of those things i've assailed many times.

i can do the point and wireframes, but when i dream about solids i don't seem to devise anything that doesn't seem prohibitively expensive.

if someone has a good paid source i'd appreciate the reference.

searching gamedev.net resources usually avails very sketchy and incomplete information

petzold's book? i hope there's something, anything else.. i think i'm allergic to the way he can type (i'd like to change that for him. 'programming for windows' was one of the most malicious acts against mankind i've witnessed, and i've seen people blown up).

found this:
http://sharafat.shaiekh.com/guides/Foundations_of_3D_Graphics_Programming_using_JOGL_ and_Java3D.pdf

still going through it and doubtful that the focus on java will retain communicability.

so, how do other people learn to do all the things that other people do, and how can i be like them?

xoxos
05-13-2012, 08:03 PM
..perhaps i can place another question that may be informative -

somehow in my mathematics education (up to trig, and, several centuries ago) i didn't seem to be introduced to the concept of matrices, which seem to be common in 3d.

are there perhaps different cultivars of matrices, and if so, can i discretise which ones i should be familiar with? or is a matrix used in dsp/math a matrix, end of story. ?? tia :)

waldronate
05-13-2012, 09:04 PM
I recommend searching on the term "opengl red book". Chapter 3 and Appendix F should provide a good overview of the subject ( http://www.glprogramming.com/red/ if you'd like to avoid the search, but I really do recommend it).

Redrobes
05-14-2012, 07:09 AM
My recommendation is this one:
http://www.amazon.com/Computer-Graphics-Principles-Practice-Edition/dp/0201848406

waldronate
05-14-2012, 10:37 AM
I almost recommended the Foley book, but it's woefully out of date (publication date of 1995, but that's just for the most recent edition; the original was published much, much earlier). The basic math background is pretty well done, but the red book discussion ought to be equally useful for this context. If you're after a good reference for CG, the Foley book used to be the gold standard because of the breadth of its coverage. Like most things computer graphics, though, it hasn't aged well. A search turns up what purports to be a PDF of the book, but it doesn't say what edition and I don't know if it's real or not.

http://www.realtimerendering.com/books.html is a good book list and there are a number of free ones in there. For good background on the underpinnings of physics, optics, etc., I heartily recommend Glassner's Principles of Digital Image Synthesis ( http://realtimerendering.com/Principles_of_Digital_Image_Synthesis_v1.0.1.pdf ), and not just for witty commentary like "This is an approximation based on using an ideal spherical cow of radius R."

xoxos
05-15-2012, 03:27 PM
they'd be quite good. you could roll them from paddock to paddock. perhaps with a suitable method of inflation a small child could transport dozens with only a length of string.

:) the foley and red book gives me a foundation for searching, thank you again!

Hai-Etlik
05-16-2012, 03:22 AM
You should probably check out the Linear Algebra playlist at the Khan Academy: http://www.khanacademy.org/#linear-algebra

xoxos
09-12-2014, 09:52 PM
well well

two years later..

lengthy story: been coding since '81, been struggling with windows for god like 16 years.. wireframed in 09.. i hope other people don't suffer from my issues.. :)

online resources for graphics coding have fruited in the most remarkable way since the '00s.. i probably don't need to tell anyone this, but dang, compared to a decade ago, the amount of blogs, forum posts et c. has really changed the game. difficult concepts are now interpreted from dozens of vantages so it's usually easy to find someone who can explain things in a way that is intelligible.

wireframed in '09.. waldronate gave me some big hands up here.. earlier this year i was doing whatever i do and suddenly realised that opaque triangles really are not a significant concept leap.. it took me 5 years, but in some tutorials the conceptual leap is a paragraph or two..

i'd thought about coming back here and starting a "links" thread, but such references are ephermal and given the current rate of increase in resources, would be a waste of time.

inigo quilez's page was a big help for me.. enough that i could grasp the marching cubes algorithm from there.
Iigo Quilez :: fractals, computer graphics, mathematics, demoscene and more (http://www.iquilezles.org)

no clue when i'll specifically work on maps again.. my sphere gen was extremely slow but further experience has introduced a few more effective algorithms (like using "fast sine osc" algorithm to replace sin and cos ops with two multiplies).

waldronate
09-12-2014, 10:40 PM
Never give up! Never surrender! Use WebGL to make the hardware do all of the heavy lifting!

Redrobes
09-13-2014, 08:46 PM
Yeah, getting one pixel drawn or one triangle up on a screen can be hard going and changes between different OS's and whatever API they have to offer. But once you have something - like WebGL - going then I would head off and get this book. Its not cheap but its an excellent read. Maybe see if a library has it to borrow. The other ones that people keep pointing to are Graphics Gems series.
http://www.amazon.com/Computer-Graphics-Principles-Practice-3rd/dp/0321399528
http://www.amazon.com/s?graphics+gems&keywords=graphics+gems&ie=UTF8

waldronate
09-14-2014, 12:14 AM
Graphics Gems Repository (http://www.graphicsgems.org/) is a good place to start with the Graphics Gems series. Also check out Real-Time Rendering Resources (http://realtimerendering.com) for a good set of links (and a pretty good book as well). Texturing and Modeling, Third Edition: A Procedural Approach (The Morgan Kaufmann Series in Computer Graphics): David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steve Worley: 9781558608481: Amazon.com: Books (http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486) is an excellent book on generating content that isn't terribly focused on just graphics basics.

xoxos
09-15-2014, 12:23 AM
someone recently directed my attn to shadertoy (coincidentally inigo quilez again) to make a provocative point about coding for browsers. while i'm not even sure what the predominant way of doing that is nowadays (still java, maybe not), it does allow one to make their work available on many platforms.

not for me, i'm old and don't necessarily equate computers and connectivity, perhaps for newer devs it would be ideal for utility applications and establishing a user base. :)

(shadertoy may be a great way to pick up techniques as iirc many of them are open source... can't get the bloody thing to run in firefox lol)

waldronate
09-15-2014, 03:37 AM
Shadertoy is a WebGL toy that provides simple access to the WebGL shaders. It should work on Firefox 17 and later if you have the hardware to support OpenGL ES 2.0 (the base WebGL spec). The shaders run on the hardware, so hardware support is pretty important.

xoxos
09-16-2014, 12:25 AM
aah, my chipset is from 2002 which gives me opengl 1.4 :)

waldronate
09-16-2014, 12:36 AM
You can always try The Mesa 3D Graphics Library (http://mesa3d.org/) for a software-based version. It'll be slow, but it will probably run. My old GF9400 on the laptop get less than a frame a second on the fancier shaders and fails on some of them...

Redrobes
09-16-2014, 09:42 AM
Yeah you need GL2.0 for any chance of using programmable shaders but newer is better naturally. If you need a demo and look at the source code then you can steal my effort. I just did this to see how easy it is. Its not hugely difficult but theres some effort needed to start with and get your head around. The main issue I think is that if it doesnt work its not all that easy to work out why. Its probably easier to get GL going in an app rather than WebGL but then once it works then you can tweak it till it looks right and keep it working.

My WebGL. (http://www.viewing.ltd.uk/Temp/WebGL/Brian.htm)

Anyway - shows some image texturing, cell shading, and that green glow shader thingy.

xoxos
09-16-2014, 10:43 PM
i'm an idiot and and wrote my own libraries :) 0% gpu acceleration but i pwn every pixel :lol:

waldronate
09-17-2014, 02:24 AM
The urge to write your own renderer is a powerful one. There are lots of folks out there who have full renderers that run on the GPU. The top-level program loads everything and draws one quad (or two triangles); the shaders programs do everything else.