Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411646 Posts in 69395 Topics- by 58451 Members - Latest Member: Monkey Nuts

May 15, 2024, 08:15:20 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityTownhallForum IssuesArchived subforums (read only)TutorialsVoxel Tutorial and Article Website
Pages: [1]
Print
Author Topic: Voxel Tutorial and Article Website  (Read 5083 times)
AlwaysGeeky
Level 0
***


AlwaysGeeky


View Profile WWW
« on: July 02, 2012, 08:07:50 AM »

Hey everybody,

I have been working on a voxel engine for a couple of months now and been slowly adding more advance features. (Shadows, Water, Physics, SSAO, etc)

At the same time I am trying to maintain a website and blog that has tutorials and guides for other people wanting to learn about making a voxel engine. I am trying to put up resources that would be helpful to programmers and other people familiar with 3D, but who are not quite sure where to start with making a voxel engine.

The address of the site is here: http://sites.google.com/site/letsmakeavoxelengine/

I am still adding lots of new stuff to the site and trying to write guides for as much about voxel engines as I can.

Just for reference here is my latest YouTube video showing my latest feature, water:




If you look at my YouTube channel you can see all the previous videos I uploaded showing progress on my engine.

Anyway hopefully people here can make some use of my resources and take something from the articles and guides I am writting.


AlwaysGeeky
Logged
BWG
Level 0
**



View Profile WWW
« Reply #1 on: July 04, 2012, 05:16:24 PM »

Hey there, really great stuff mate.
I particularly love the SSAO. It is very smooth.
I wish I had the time to work on a voxel engine. Sigh.
Logged

Nix
Guest
« Reply #2 on: July 04, 2012, 08:00:52 PM »

I really don't like this trend of calling cubes voxels, but it's awesome that you're making an educational resource like this.
Logged
JakobProgsch
Level 1
*



View Profile
« Reply #3 on: July 04, 2012, 08:09:16 PM »

May I ask what the dynamic shadow algorithm is? I was so far never really happy with shadow maps and stencil shadows while looking nice completely murdered my gpus.
Logged

AlwaysGeeky
Level 0
***


AlwaysGeeky


View Profile WWW
« Reply #4 on: July 04, 2012, 08:17:36 PM »

BWG - Thanks, The SSAO actually turned out a lot better than I thought it would, and makes the engine have real character Smiley

Nix - Haha, yeah I know what you mean, I have had this discussion *many* times before. The problem is, there isnt really a sensible alternative at the moment. Voxel is quite well understood (even if not 100% technically accurate for my engine) so it works out fine really.

JakobProgsch - You might be disappointed but I am just using a standard shadow map. I cheat a little by making my sun object a really far away orthogonal directional light when generating it's shadow map, and not a true point light. but it seems to work out ok and gets good results.
Logged
Nix
Guest
« Reply #5 on: July 05, 2012, 09:29:12 AM »

The sun really ought to be a directional light (plus ambient light) anyway. It's so far away that it effect it's orthogonal. Making it a point light would lead to some weird and unrealistic effects.

I don't know if you're planning on making this into a game, but one of the greatest shortfalls of Minecraft IMO was its shortage of genuine world interactions. Beyond reshaping things, there's not much you can do. The world should grow and change in many different ways for it to feel genuinely mutable. Planting orchards was one of my favorite activities before I denounced Minecraft in a rage and never played again. You should experiment with mechanical devices. It would be incredible if a particularly ingeneous player could combine a set of fairly basical mechanical building blocks to create an articulating draw-bridge or Howl's Moving Castle. Pistons were a step in the right direction (which, for the record, Notch had nothing to with. Pistons were a mod which Notch added to the official codebase after he decided he was too lazy to develop his own features), but could be taken much further.
Logged
zacaj
Level 3
***


void main()


View Profile WWW
« Reply #6 on: July 05, 2012, 11:00:41 AM »


Nix - Haha, yeah I know what you mean, I have had this discussion *many* times before. The problem is, there isnt really a sensible alternative at the moment. Voxel is quite well understood (even if not 100% technically accurate for my engine) so it works out fine really.


You don't think you could do CPU ray tracing into voxel volumes?  I think this will be gaining traction in the future.
Logged

My twitter: @zacaj_

Quote from: mcc
Well let's just take a look at this "getting started" page and see--
Quote
Download and install cmake
Noooooooo
_Tommo_
Level 8
***


frn frn frn


View Profile WWW
« Reply #7 on: July 05, 2012, 11:23:48 AM »

Cool, the water is actually awesome Smiley
But, it has a problem gameplay wise - Where would a river end? I think that Minecraft never implemented water that can "stack" because that way a simple river or a misplaced hole on the bottom of the ocean could fill entire cave systems... that would be very annoying.
Maybe you should design some "drain" blocks that always destroy any water they receive, placing them in a way that would prevent massive floods.
And even with that one, with random river sources à-la Minecraft you would end up with mostly flooded caves, probably.

Btw, the Cube Test code could be rewritten with less copy-paste like this?
Code:

Vector3d v;
for( int j = 0; j < 6; ++j )
{
float lastSide = 0;
for( int i = 0; i < 8; ++i )
{
vertex.x = center.x + (i & 0x1) ? x : -x;
vertex.y = center.y + ((i >> 1) & 0x1) ? y : -y;
vertex.z = center.z + ((i >> 2) & 0x1) ? z : -z;

float side = planes[i].GetPointDistance( vertex );

if( side * lastSide < 0 ) //different sides!
return FRUSTUM_INTERSECTS;
}

if( side < 0 ) //all out of this plane
return FRUSTUM_OUTSIDE;
}

return FRUSTUM_INSIDE; //all inside of all planes

PS: I don't know why the forum firmly rejected this post - I had to write a random one and then edit it to post Who, Me?
Logged

Liosan
Level 2
**


View Profile
« Reply #8 on: July 05, 2012, 11:22:27 PM »

Awesome stuff :D I'm liking it, and I'll definitely use it as a reference (if the tutorials are as cool as the videos :]).

I really don't like this trend of calling cubes voxels, but it's awesome that you're making an educational resource like this.
Voxels != cubes. Voxels are very specific cubes that are axis-aligned, positioned in a grid and have fixed size, aren't they?

Liosan
Logged

Nix
Guest
« Reply #9 on: July 05, 2012, 11:38:55 PM »

Awesome stuff :D I'm liking it, and I'll definitely use it as a reference (if the tutorials are as cool as the videos :]).

I really don't like this trend of calling cubes voxels, but it's awesome that you're making an educational resource like this.
Voxels != cubes. Voxels are very specific cubes that are axis-aligned, positioned in a grid and have fixed size, aren't they?

Liosan

Until very recently (Minecraft), voxels referred to much finer-grained units of volumetric data. The whole point of voxels is that they can offer finer detail than similar polygonal meshes, and a fair bit of research has been done about this type of voxel and how to store and render it without the traditional triangle rasterization pipeline.
Logged
bluescrn
Level 1
*


Unemployed Coder / Full-time Indie :)


View Profile WWW
« Reply #10 on: July 06, 2012, 06:31:17 AM »


I like the term 'boxels' for Minecraft-style cube worlds
Logged

AlwaysGeeky
Level 0
***


AlwaysGeeky


View Profile WWW
« Reply #11 on: July 06, 2012, 10:51:30 AM »

Nix - Ah cool, so I didn't really cheat for the sun object then, since as you say it should be a far orthogonal light, that makes me feel better and I am actually pleased with the result, except for the shadow map quality, but I can address that later.

_Tommo_ - Thanks, I have had lots of feedback about water and seems everyone loves this feature? I cant wait to demonstrate some of the gameplay I have planned for it. Also thanks for the better optimized cube test code.

As for the whole issue with regards to calling stuff voxels which are not technically voxels... My opinion on the matter is, I agree that *technically* I don't have a strict voxel engine, but until another term starts being used as common place. I will continue to use the phrase voxel engine. Apart from the people who are being very specific on technicalities, most people understand that a voxel engine is a rendering style where all drawing is done using cubes or blocks of some fashion. Minecraft basically brought the term voxels into the light and more people now know about this technology and what the term means than did previously, so that is a good thing. Even if their understanding of it isnt strictly 100% right.

Personally I am happy to keep using the term voxel engine.

Also 'boxel' seems silly, doesn't have the same ring to it, and most people would get confused if that started being used in place of voxel.

Glad that people like the tutorial and article site, hope it is useful to people and shares my insight into what I have found out.

AlwaysGeeky
Logged
AlwaysGeeky
Level 0
***


AlwaysGeeky


View Profile WWW
« Reply #12 on: August 03, 2012, 05:49:46 AM »

I have just done an update to the site and added new articles... specifically for Physics and Collisions.

Smiley
Logged
Chris Koźmik
Level 5
*****


Silver Lemur Games


View Profile WWW
« Reply #13 on: August 20, 2012, 09:40:46 AM »

A very nice tutorial, easy to read and clear. Which is rare.

Are you going to update it further? Like the missing "Colouring" and something about light?
Logged

Stellar Monarch 2 (dev log, IN DEVELOPMENT)
Stellar Monarch (dev log, released)
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic