Members - Reputation: 1413
Posted 23 September 2012 - 04:55 PM
After a couple months of looking into this, may I ask for online reading material which would help beginners to understand the comparisons of these three and typical situations where they are used in C# based games:
2) Per-vertex Lighting
3) Per-Pixel Lighting
To be more specific, I am trying to understand which ones are better for certain things both in terms of beauty and performance. Conversely, where should I likely want to avoid using one or more of the above? How do I know the limits of each technique or how can I estimate such limits? Is there any new technology here or on the horizon?
Any other points of view on this such as techniques which are industry standard or your personal preference would be outstanding. Let us know what software or programming language you are using and why to achieve work in any of the above three, please.
Long Term Journey
For the sake of given information, I am especially looking at sky, ocean, and ambient light such as gunfire flashes (including ambient/reflective) because most of my game development will be for combat games using these in the long term. The C# area is permanent, though almost anything else could change.
Short Term Focus
Help me aim at reasonable goals for beginner to intermediate level. Where should I go early and what should I avoid until I get quite experienced - as for lighting? My language for render engine will be C# (Axiom 3D) and likely Python with Blender for scripting animations, effects, and so forth. ( surely that is possible, right? ) I will either hit OpenGL or go with MonoDevelop (advantage to work from Axiom C# render engine and Python with MonoDevelop). This short term effort will last at least until the end of 2013 strictly for learning purposes. After that, I could make almost any change as long as it includes C#. Short term is mostly Open Source technology for me. ( All open source at this stage)
How much of the above three can be programmed into a 3D object (or any surface) and how much is code based? Would this be in the render engine, scripting language, or both possible? Which is best for game performance? If anyone has a nice diagram to clarify this, it would be much appreciated.
Please provide suggestions, online information resources, and citicism of my newbie and mostly clueless self, though I have looked many hours to attempt introducing these things into my understanding.
Well, hey, I want to know where I should go in the flow of things. You point me with the information and I will continue my hard work at game development to use it!
Remember, please: I want to use the best lighting for performance most often and maybe most demanding ones only occasionlly in game.
Members - Reputation: 2043
Posted 23 September 2012 - 05:26 PM
Second, you're overcomplicating matters by dragging in completely unrelated topics into the discussion, and I think you just have a completely wrong image of what the terms per-vertex and per-pixel lighting mean.
Here's a simple explanation:
Per-vertex and per-pixel lighting are both ways of evaluating a BRDF, mostly done in a shader. Per-vertex lighting evaluates your BRDF for each light for each vertex in your model, per-pixel lighting calculates the BRDF for each resulting pixel which makes up your model in your lighted image.
Per-vertex lighting is faster when the vertex density of your model is lower than the resulting pixel density but will generally give very low quality results for meshes with a low vertex density.
Per-pixel lighting will generally give better results than per-vertex lighting, but is more expensive to calculate in most of the cases, although this overhead is mostly negligible these days.
Techniques like sky lights, particle lights, atmospheric effects, etc. require you to make far tougher decisions than the decision of whether to choose per-vertex of per-pixel lighting, so it might be a good idea to read up on very basic lighting principle before you continue on to the advanced topics.
Edited by Radikalizm, 23 September 2012 - 05:27 PM.