projectshome.genengine.referencereading
- Serialization / Deserialization
- Data Types
- Networking
- Vertex Buffers
- Clouds
- Interfaces
- Generic Classes
- Culling
- General Optimisation
- Array Optimisation
- Shaders
- .x File Loading
- Textures
- Misc
- DirectX Classes possibly worth looking into
- Serialization / Deserialization
- Fast/Compact Serialization Framework – An alternative serialization method to the built in .net version
- Data Types
- Programming Bits: C# Data Types By Ariel Ortiz Ramirez – This section details how reference and value types are used. Nice and simple descriptions with images.
- C# and its Types – Has the sizes of all the default data types which is handy reference :¬)
- Networking
- Interesting BeginReceiveFrom Discussion
- Gamedev.net FAQ – Multiplayer and Network Programming – has oodles of good links to more resources
- Sonys World Servers Overview
- A neat question that led me to the above sony link
- MMORPG and the ol' UDP vs TCP – a great forum thread
- What should I use instead of DirectPlay?
- Networking Resources and Replacing DirectPlay
- UdpClient – built in .net networking class that can be used for basic funtionality
- Think I'm going to use this over the other network APIs out there purely because its usuable with managed code straight away (it is managed codeitself) which none of the others can say.
- UDP Date Time Client/Server by Saurabh Nandu – A very nice concise example of using the UdpClient and multithreading
- UDP Multicasting Thread
- Vertex Buffers
- Using Vertex Buffers with DX – a forum post with a lot of good answers
- Clouds
- Guide to cloud types has some ok images and good descriptions of the different cloud types including their altitudes
- Like the chart of clouds from skool
- Google images of "Cloud Type"
- Interfaces
- The C# Station Tutorial: Lesson 13: Interfaces – lucky for some...
- Generic Classes
- DataSim Course Overview: Generic Programming in C# – Has a good compact definition of what a Generic class is
- GotDotNet: The C# Programming Language Future Features – Possibly the best online guide to Generic Classes in C#
- Eric Gunnerson's C# Compendium – An initial look into Generics Algorithms
- The Code Project: Using generics for calculations – Builds on the last one
- ONDotnet: Writing Type-Safe Collections in C# – Handy to know
- DevHood: Writing Your Own Type-Safe Collection – At least as good as the last reference!
- Culling
- Directx II – a tutorial but it has a good description of the built in dx backface culling system at the bottom
- Geometry Culling in 3D Engines – a comparison and description of several methods
- General Optimisation
- Optimise DX3D App – short straight to the point list of optimisations
- Toms DX FAQ
- MSDN DX9 FAQ – has loads of neat little tips n tricks in particular the outline of their recommended vertex buffer batching system
- C# Making Your Code CLS Compliant
- field initializer optimizations
- Peter Hallams Blog on the above
- Drunken Hyena Matrices – its not actually the matrix explanations that im bookmarking this for. Its what they say in the last example about reusing the same object by just drawing it multiple times in the same render call. this could be used loads from just redrawing the same shrub x100 to drawing the terrain quads ;¬) (have you already done this?)
- Use the Vertex Buffer efficiently
- Some general tips from Tom Miller
- DevMaster.net – Batching indexed primitives – A forum post discussing indice batching
- Array Optimisation
- The Code Project: Arrays UNDOCUMENTED – A detailed look at the implementation of Arrays and Array Lists? by an Ex-MS developer
- 4GuysFromRolla: Specialized Collections – All 4 parts are worth reading
- go with Hash Table? for now as it makes debugging easier. By wrapping it in our own class it means we can switch it later with hardly (if any) modifications to the rest of the program
- Shaders
- Huge list of shaders theres also some neat tutorials
- Pixel Shader for planets Enviroment
- Ramblings of a Hazy Mind Tutorial 11: Basic Shader Implementation
- vvvv: pixelshader tutorial for all the shader newbies
- http://www.pieterg.com/Tutorials.php
- http://dotnet.org.za/pieterg/a[...]tegory/1052.aspx?p=2
- http://zeknight.blogspot.com
- http://www.codeproject.com/cs/[...]terrainrendering.asp
- http://www.gamedev.net/referen[...]cles/article2125.asp
- http://www.gamedev.net/columns[...]/dxshader1/page3.asp
- .x File Loading
- Direct-X Format – Possibly the best explanation of the format I've ever read. Its very detailed and explains all the syntax used in the actual format.
- Loading and displaying. X files without DirectX – had a good pseudo code for the entire process of loadng a mesh, boning and skinning it and animating it
- DirectX "X" binary file with c++ – aqua9880 Explains XFile templates although its in C++
- Look in the supplied SDK documentation under Direct 3 D?->Classes->XFile and the others related to it in the same area
- The Frames with no name that surrounded frames with content were the Mesh Groups created in 3DS. Panda Direct X? exporter just converts groups to unnamed Frames..doh!..
- DX9 Kick Start – This is just one page of it, check out the "Contents" page for more goodies. It has been kinda useful in explaining the Graphics Stream? object although I'm still clueless :¬)
- A forum post about VB, IB and GS Access
- 14.04.06 <– This is the day that I finally got my head around the Graphics Stream?, mark it on your calendars people for it is a great day in history :¬)
- OMG – does it ever end? :¬) so it all seemed pretty sorted till now when I suddenly realise "wait, what are these face normals and face normal indices for?" and then the follow up thought of "wait, where the hell are the vertex normals?". Well the not so obvious answer is that its more DIY work to be done:
- Extracting Normals – this is the grail thread. i googled and i googled and nothing made any sense, then i spelt the search word correctly and found this gem ;¬)
- flipcode – Vertex Normals – got this link from the thread above, it has a simple function that I think im going to base the calculation i have to do on
- "calculation i have to do?" yep more fun with maths hehe so the face normals and their indices can be used to generate the vertex normals. the thread above is ultra handy as they explain a few variations on doing this so im going to code them all up and then we can experiment with which one looks best for us.
- the only thing left to do after that is to use the Material List? of face indices. Basically we want to use this to group the faces that use the same material together so we can use fewer setTexture() calls. In one way its an optimisation but in another we have to address it anyway to a lesser degree to get any materials onto our models
- Textures
- Gamustra – Practical Texture Atlases – a top level guide to atlases
- Charles Bloom – Terrain Texture Compositing by Blending in the Frame-Buffer aka "Splatting" Textures aka "Texture Splatting"
- flipcode – ROAM Implementation – obviously its about using the ROAM Technique but it also covers other areas such as Vertex Buffers, Index Buffers and Texture Batching. Be sure to read the end "Results" section ;¬)
- Misc
- Multiverse Developer FAQ – an interesting FAQ that gives insights into why and how they handle certain things such as splitting large terrains and networking, i found it based on a networking query i had
- How to: Wrap Native Class for Use by C# – which is something we would have to do ourselves to use raknet ;¬)
- MMORPG up to 500players – a handy thread on the raknet forum that has links to a few relevant articles.
- Two Kings Tutorials – really good directx tutorial site
- Dark Side of Delegates inc Delegates vs Events
- Working with the DirectX. X File Format and Animation in DirectX 9.0 – loads of comments on how to add animation to a .x file from 3ds
- MSDN: Implementing the Equals Method
- MSDN: Using Sprites – has some good tips at the bottom for optimisation
- Drunken Hyena: Initializing Direct3D – an excellent resource for learning about all the properties and methods involved in initialising dx
- flipcode: Billboarding – Cool Bill Boarding? Guide
- Implementing the Singleton Pattern in C# – medium length article with 5 examples of different methods. We're using a slightly modified version of the 4th technique
- Working With Arrays – Back to basics!
- Parameter passing in C# – Really precise and to the point along with excellent easy to follow examples
- DirectX Classes possibly worth looking into:
- Clip Plane? & Clip Planes?
- Compressed Animation Set? – Implements a keyframe animation set that is stored in a compressed data format
- Geometry – Contains miscellaneous math-related functions such as Bounding Box Checking
- Manager – if not just for this one funciton: / Manager / Disable D 3 D Spy? Method
- Prt – The Prt Engine? class is used to compute a precomputed radiance transfer (PRT) simulation. Its methods are typically used offline to compute per-vertex or per-texel transfer vectors in advance of real-time 3-D modeling
- Render To Enviroment Map? – Generalizes the process of rendering to environment maps. An environment map is used to texture-map scene geometry to provide a more sophisticated scene without using complex geometry. This class supports the creation of surfaces for the following kinds of geometry: cube, half sphere or hemispheric, parabolic, and sphere
- Render To Surface? – Generalizes the process of rendering to surfaces. Surfaces can be used in a variety of ways; for example, as render targets, or for off-screen rendering and rendering to textures
- Simplification Mesh? – optimises mesh object for faster performance
- Spherical Harmonics? – dunno, just sounds cool – hmm according to here it can be used as a lightmap? im looking deeper into this one. check out the dx sample "PRTPerVertex" it uses SH apparantly
- State Block? – this allows us to store and retrieve Render States?
