Recent Posts

Pages: [1] 2 3 ... 10
1
General Discussion / Re: Smooth Meshing (I know; something noone's asking for :) )
« Last post by d3x0r on May 13, 2020, 06:01:38 am »
Started a 'smarter' / better ... Dual Marching Tetrahedra.  Pass 1 - compute Tetrahedra, which each face results in a point.  Use those points on the faces to make edges of new faces.   It smooths out some of the very pointed artfacting and makes a much smoother result.

Unfortunatly, the multi-texturing becomes a merge of 3-5 (depending on how it's looked at) x 3 vectors each , so I fell back to just downloading the 'element' or 'voxelType' information to the shader... I took the 3d volume and tiled slices on a texture so I can look up in x/y/z of the point what the type is; but this makes very sharp edges between types... there's basically no merging (well, that, and I sort of over-multiply points that should otherwise not count... it's still sort of a work-in progress to get the textures in 'Show Grid' mode to work well).

https://d3x0r.github.io/DualMarchingTetrahedra/

Also, there's a lot of points on the grid that generate overly small triangles (I could loosen my tolerances and it would probably work better); but I recently added the 'show normals' to show the 'reason' that there are flips in the quads generated....

2
General Discussion / Re: Smooth Meshing (I know; something noone's asking for :) )
« Last post by d3x0r on April 26, 2020, 02:29:45 am »
https://d3x0r.github.io/IsoSurface-MultiTexture/

This needs almost a whole user manual :)

Some important things I should point out - Show Edges - draws the wireframe model; this is sometimes generated as a quad of line segments - so it misses a triangle across; it was assumed that the intersection through 4 edges was flat; it is not.  But! Show Edges allows to show where water is transparent(for instance)

( This needs Multi-pass to render solid, and then transparent/liquid phases; but it's just a simple demo )

The inflation slider, when in a normalized position, allows inflating and deflating the land; which for a landscape game could be applied for solid and liquid phases. (A different game entirely)

But; 1:10, 1:1, 10:1 scaling options are fixed cube position things... making all the computations digital instead of analog... Minimize/Maximize even moreso... My first pass at smooth-ish rendering is sort of like maximized mode - which pushes out edges, and causes some dimpelling... Minimize is a totally opposite effect, making inner corners inset instead of out-set...

Stylistically I like the 1:1 , with edges.

I was going to do a custom index-blackvoxel.html which reduces the terrain texture (except where there is specular light reflection, and a black surface with a grid. )

I did have to scale/bias the grid because on maximized/minimized initially, the planes at 0, 1, 2, 3, etc, are all exactly on one of the axis lines so the whole faces lit up with the grid-glow; I believe this is an improper style... but depending on where you scaled (well the previous message has the grid render - on some of the things you can see the purple sort of over-glow - like on the back of 'terrain' input data with 'outside' enabled (which closes in the bottom, and generates just random data... (random is worst case for input; the functions make nice smooth curves, the scaling 1:1 sort of options normalize randomness... (but really sort of make it a flat plane).

I think instead I can measure the face normal and de-emphasize the axis that the plane is aligned on...  (scale by  1-normal )

Hope you all are well!
3
General Discussion / Re: Smooth Meshing (I know; something noone's asking for :) )
« Last post by Enigma on April 06, 2020, 08:23:02 am »
Hi, D3x0R, glad to see you  :)

Thanks for sharing your tought about tetraedron. We'll read it.

Like triangle is more a primitive than square, Tetraedron is more a primitive than cube.

Cube is easier to handle for player. Tetraedon permits more details with less sharp edges.

Be carefull about Coronavirus as it is spreading massively worldwide now.

The Blackvoxel Team
4
General Discussion / Re: Smooth Meshing (I know; something noone's asking for :) )
« Last post by d3x0r on April 04, 2020, 11:03:47 pm »
Updated a bit; added 'Show Grid' option, which uses a shader to draw rectilinear grid lines :)

Actually, marching cubes, with show grid is actually very rectangular... 

https://d3x0r.github.io/MarchingTetrahedra/

5
General Discussion / Re: School Mode
« Last post by d3x0r on April 02, 2020, 12:47:11 pm »
Okay great
I'm not sure your notify option is working for everyone; I'm at gmail, and I'm certain I set notify on the message.
6
General Discussion / Smooth Meshing (I know; something noone's asking for :) )
« Last post by d3x0r on April 02, 2020, 12:45:48 pm »
I've been toying with smooth meshing for a while, determined to not have to use 'marching cubes'; that surly there's a simpler way.  It's maybe not a 'better' way in all aspects...

https://gist.github.com/d3x0r/5633f0548f4d7b283f8bab19e022acad (pretty pictures included)

(How much TL;DR to include...)
tetrahedra only have 2 mesh modes - 1 point in/out and an edge out which generates a quad that's not constrained  flat.

The example code is JS; and it looks like a lot; the plane mesher (that calculates each shared point only once) is actually simple (perhaps it's because I've been staring at it for dayz).  That is, the first version was long-form expanded with if's; and series of statements; I consolidated those into lookup tables, and 'simplified' the overall required code, at the cost of legibility perhaps?  (Like I never really did understand your face mating tables :) )

This forms a mesh around the points as a center (instead of sort of in-a corner of the cube), which offsets it by (0.5,0.5,0.5); but for things like trees, and other geography would think smoothing would work well, using world-space coodrinates for texture uv-coordinates; was also playing with the ability to 'inflate/deflate' the mesh and realized that meshing water deflated and land inflated would give a very nice transition.

Still requires a pass to stitch sectors together; otherwise data has to be duplicated; can easily do default 'outside' 'inside' by faking 1 render point outside... hmm actually that's just on the stitch line; I should add the stitch pass as another option...

There is certainly a lot of space for square meshes! 

Peace and good health to you!
7
Programming with Blackvoxel / Re: Programmatic handling of the player
« Last post by Enigma on November 30, 2019, 02:21:30 pm »
Hi MUY_Belgium,

Thanks for your suggestions.

About PlayerSetAccell(), the player displacement is not proportionnal to the values because of air friction and ground friction. Blackvoxel use realistic physics formulae. To make it simple, the air friction is proportionnal to square of the speed. So, if you accelerate the player to an high speed, the friction will be very high... so the speed will go down very fast.
In an realistic world, the player should die above some limits.

For PlayerMove(), there is a bug. The good news is that's already fixed in our work. Stay tunned, we'll try to make a bugfix release in the next few days.

The values indicated in PlayerMove() is in player unit, not in voxel unit. The player unit is 256.0 units for a voxel.

The actual limit is 5000 units.

Best regards,
The Blackvoxel Team

8
General Discussion / Re: Questions
« Last post by Enigma on November 30, 2019, 02:18:45 pm »
So, thanks for your encouragements and your positive thoughts  :)

The photorealistic voxel engine you spoke about are not a likely "improvement" way for Blackvoxel engine. That's completely different way, architecture and engine type. Not the same needs and objectives.

In the eventuality we'll make an uprade of the rendering system someday, it would likely end up in something specificly chiselled for the Blackvoxel needs.

Our original goal for Blackvoxel was to make a good game, to make something different and creative by exploring new concepts. Competing in the general engine costly race against big game companies is a completely different business.

In the hope we have answered to your question, we wish you a good game.
The Blackvoxel Team
9
Programming with Blackvoxel / Re: Programmatic handling of the player
« Last post by MUY_Belgium on November 28, 2019, 12:46:58 am »
I have not used those function too.  Indeed throwing the user anywhere to the sky rapidly kill it.  There is programmation exemples but i cannot remember where i found then.  I noticed that this code cause the player to go up really fast.  I usually finish this with "u" (stop all robots).  Use this onderground only!

Voxel_Step()
{
  local Diff = GetInfo(5) - GetY(); 
  if (GetZ() == GetInfo(6)) //  && Diff>0 && Diff<4)
  {
    PlayerSetAccel(0.0, 1500.0, 0.0)
    if (Diff>1) Move(4);
  }
}


For horizontal displacments, I could not manage to use PlayerSetAccel and used PlayerMove instead.  I really cannot figure out what the numbers figures, player displacement seems not proportionnal to the numbers given in arguments but

PlayerMove(15.0, 0.0, 0.0);

seems to safelly displace the player by 23 voxels if the place is empty with a ground.

You may want to foound a way to limit the number of UP to 16, 32 or 64 voxel depending upon the extraction robot you are using...
10
General Discussion / Re: Questions
« Last post by Voxel Space on November 21, 2019, 03:10:46 am »
 A dream can be what you make it, but mostly it is a mirror; one that reflects the choices of the past into the progress of today, to show a glint of what can be tomorrow... it is up to you to position that light to form the next image. My dream is not of voxels, not a game, but a way to change the outcome of the world. Voxels seem to be a good start, not for the dream itself, but as a guide on how to get there; voxels can show a world of their own; an idea, that gives a way for the image to be seen; a choice, for how tomorrow will become. This 'dream' is already being made by people who realized it, engines like Atomontage and Voxel Farm can both create fully volumetric (realistic) voxelized space. No matter how useful they are, their methods of execution is why they can fall, the reason for asking if your engine has the same capability is because yours has what the others are missing: a pillar to support the weight of progress, and its continuous use by others; a vital piece of freedom, called Open Source. While the other engines have more functionality, a high price to pay (more in their decisions than in their actual cost ) is what makes the option seem much further away than it truly is; behind a wall with a locked entrance when it should be open. As a city built on greed will blacken in the fog of ignorance.. ignorance of the strength and opportunity that its foundation holds for everyone willing to improve it, for the ones they keep outside the walls also in search of a better place. This will not stop their journey. With the knowledge of the downfalls held by these establishments and the skills to proceed, they will build their own city, not as strong initially, but one with the shared potential to surpass the ones in lead... because what may seem like a barrier  is usually a chance to build something great.

Even if this is not the purpose of your engine, no matter how small in comparison, it is built on a good foundation, I hope to see it become even better and maybe even make my own mods for it some day! Good Luck, and ... Thanks! ;D

~=VS=~
Pages: [1] 2 3 ... 10