Gamestudio Links
Zorro Links
Newest Posts
Blobsculptor tools and objects download here
by NeoDumont. 03/28/24 03:01
Issue with Multi-Core WFO Training
by aliswee. 03/24/24 20:20
Why Zorro supports up to 72 cores?
by Edgar_Herrera. 03/23/24 21:41
Zorro Trader GPT
by TipmyPip. 03/06/24 09:27
VSCode instead of SED
by 3run. 03/01/24 19:06
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
5 registered members (TipmyPip, AndrewAMD, Quad, aliswee, degenerate_762), 970 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
sakolin, rajesh7827, juergen_wue, NITRO_FOREVER, jack0roses
19043 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 6 1 2 3 4 5 6
Voxel fürs 3d Gamestudio #428986
09/06/13 13:21
09/06/13 13:21
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
Hallo

mein Kollege hat mich gestern auf seiner X-box 360
das Spiel "Minecraft" zocken lassen ...

ich war begeistert von der umsetzung und habe immer gedacht, dass es ein ganz einfaches Kinderspiel were
__________________________

nun möchte ich diese Technick gerne ins 3D gamestudio
umsetzen , nach langen googlen bin ich auf folgede große
Namen gestoßen:

CUBE_X und VOXEL

nach weiterem googlen hab ich das jetzt so verstanden:

ein Voxel ist ein Pixel mit Volumen welches in die
3te dimension positioniert und gezeichnet wird..

beim CubeX handelt es sich anscheind um ein Sammel-begrif
und ist ein bereits umgesetztes projeckt fürs 3d-GS

über edliche links bin ich dann auf ein Download gestoßen
und habe mir das project mal angeuckt ...

im verzeichnis "Code/cubeX.c" habe ich dann folgendes gefunden:

Code:
BLOCK* block_create(VECTOR* pos, BLOCK_MATERIAL* material)
{
 ...
 // GANZ VIEL CODE !!!! 
 ...
}



und dann plötzlich:

weiter unten die zusammensetzung:
Code:
function block_createTop(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->top)
		return;
	block->top = ent_create(material->top,vector(pos->x,pos->y,pos->z + BLOCK_SIZE_HALF),NULL);
	set(block->top,DECAL | NOFILTER);
	reset(block->top,DYNAMIC);
	block->top->tilt = 90;
	block->top->skill[0] = block;
}

function block_createBottom(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->bottom)
		return;
	block->bottom = ent_create(material->bottom,vector(pos->x,pos->y,pos->z - BLOCK_SIZE_HALF),NULL);
	set(block->bottom,DECAL | NOFILTER);
	reset(block->bottom,DYNAMIC);
	block->bottom->tilt = -90;
	block->bottom->skill[0] = block;
}

function block_createRight(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->right)
		return;
	block->right = ent_create(material->right,vector(pos->x,pos->y - BLOCK_SIZE_HALF,pos->z),NULL);
	set(block->right,DECAL | NOFILTER);
	reset(block->right,DYNAMIC);
	block->right->pan = -90;
	block->right->skill[0] = block;
}

function block_createLeft(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->left)
		return;
	block->left = ent_create(material->left,vector(pos->x,pos->y + BLOCK_SIZE_HALF,pos->z),NULL);
	set(block->left,DECAL | NOFILTER);
	reset(block->left,DYNAMIC);
	block->left->pan = 90;
	block->left->skill[0] = block;
}

function block_createFront(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->front)
		return;
	block->front = ent_create(material->front,vector(pos->x + BLOCK_SIZE_HALF,pos->y,pos->z),NULL);
	set(block->front,DECAL | NOFILTER);
	reset(block->front,DYNAMIC);
	block->front->skill[0] = block;
}

function block_createBack(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
	if(block->back)
		return;
	block->back = ent_create(material->back,vector(pos->x - BLOCK_SIZE_HALF,pos->y,pos->z),NULL);
	set(block->back,DECAL | NOFILTER);
	reset(block->back,DYNAMIC);
	block->back->pan = 180;
	block->back->skill[0] = block;
}



usw ... usw ... usw...


FRAGE:

wie bekomme ich das ganze denn jetzt in die 3te
Dimension ????????

immer wieder erscheint der befehl:
Code:
"ent_create"



- ent_create lässt aber eigendlich nur 1000 entits zu
(ich benutze die A8 Gratis version)

ich möchte gerne wissen wie man das ganze
ohne den ganzen material-kram verwirklicht

so das einfach nur weisse blöcke zu sehn sind ...

Warum das ganze ???

-> erstelle ich 3 Cubes (.mdl) die nebeneinander
liegen hat jeder Cube schatten , licht ect.

Sprich: Man sieht einfach das, das erstellte
object aus 3 cubes gemacht worden ist

hier:





sind also in 3d-gs erstelle voxels auch nur Entitys ??

ich will das wissen weil ich da was bestimmtes vor habe wink
...

Re: Voxel fürs 3d Gamestudio [Re: ratz] #428989
09/06/13 13:48
09/06/13 13:48
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
für jedes voxel eine ENTITY* zu verwenden ist EXTREM ineffizient und wenn du etwas minecraft ähnliches hinbekommen willst leider viel zu langsam.

Du könntest also für z.B. 16³ blöcke eine ENTITY* verwenden, dabei musst du aber auch das meshen per direct-x machen.

Außerdem musst du auch block-seiten, die nicht sichtbar sind erst garnicht erstellen, weil das wieder extrem viel leistung für garnichts verbrauchen würde.

...und mit dem lighting will ich erst garnicht anfangen.

Also meiner Meinung nach ist es relativ schwer ein voxelsystem wie das in minecraft verwendete zu coden, vor Allem, wenn man noch keine Ahnung hat, wie man mit vertex / index buffern arbeitet.


POTATO-MAN saves the day! - Random
Re: Voxel fürs 3d Gamestudio [Re: Kartoffel] #428995
09/06/13 14:24
09/06/13 14:24
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
Quote:
beim CubeX handelt es sich anscheind um ein Sammel-begrif
und ist ein bereits umgesetztes projeckt fürs 3d-GS

Autor meldet sich:
Ja, CubeX ist ein (altes) Voxel-System, welches eigentlich auch mit der Free-Version gehen sollte. Ich habe den Ansatz von Kartoffel auf einfache Weise verfolgt, in dem ich Sprites anstelle von Würfeln verwende und nur die sichtbaren Würfelseiten darstelle. max_entities kann übrigens vor dem Level-Laden erhöht werden (sollte auch irgendwo ein Beispiel dabei sein).

Ich habe das System nochmal überarbeitet und in TUST veröffentlich:
Kubus Voxelizer
Es kann aber sein, dass Kubus eine Extra- oder Commercial-Version benötigt.

Es ist auf jeden Fall nicht einfach, so ein System optimal mit Gamestudio umzusetzen.
Gruß
Felix


Visit my site: www.masterq32.de
Re: Voxel fürs 3d Gamestudio [Re: MasterQ32] #429121
09/09/13 11:12
09/09/13 11:12
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
laugh jaaa .. ersteinmal danke für so viel information
ich war lange nicht mehr hier on

@ MasterQ32:

an sprites habe ich auch schon gedacht , nur drehen diese sich halt zur
camera mit -> Gestern lass ich im buch:
"Computerspiele - Programmierung und Design"
(hab ich schon ganz lange laugh )
das es in Gamestudio A4 ein Flag gab namens:

My.ORIENTED = ON;

gab

gibt es in lite C ein solches flag ? .. bestimmt finde ich es gleich laugh

Re: Voxel fürs 3d Gamestudio [Re: ratz] #429122
09/09/13 11:20
09/09/13 11:20
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
ja, das nennt sich bei sprites DECAL.
das verhindert, dass sie von zwei seiten gezeichnet werden
und dass sie sich automatisch mitdrehen


Visit my site: www.masterq32.de
Re: Voxel fürs 3d Gamestudio [Re: MasterQ32] #429123
09/09/13 11:26
09/09/13 11:26
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
okey , jetzt muss ich gucken wie ich das mache ^^

benutze ich ent_create kann ich dann auch flags benuzen ?

Code:
function create_test()
{
 var i;
 for (i=0; i<2; i++) // repeat 2 times
 {	
  ent_create("texture.bmp",vector(10+i,0,0),NULL);
  set(my,DECAL);
 }
}



so kommt die fehlermeldung: "Script-Crah in create test"

mit der for-schleife experimentiere ich nur rum wink

Re: Voxel fürs 3d Gamestudio [Re: ratz] #429125
09/09/13 11:32
09/09/13 11:32
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
habs grin

Code:
ENTITY* test;

function create_()
{
 
  test = ent_create("texture.bmp",vector(10,0,0),NULL);
  set(test,DECAL);
 
}


Re: Voxel fürs 3d Gamestudio [Re: ratz] #429126
09/09/13 11:41
09/09/13 11:41
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
you sollte auch gehen, da musst du keinen zusätzlichen pointer erstellen.


POTATO-MAN saves the day! - Random
Re: Voxel fürs 3d Gamestudio [Re: Kartoffel] #429138
09/09/13 12:33
09/09/13 12:33
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
Boa damit kann man ja richtig geile sachen machen

laugh sieht aus wie ein Direct X oder Open_GL beispiel grin




ich hab jetzt mal 32x32 texturen gemacht grin

Code:
///////////////////////////////



ENTITY* b1;
ENTITY* b2;
ENTITY* b3;
ENTITY* b4;
ENTITY* b5;
ENTITY* b6;


function create_cube()
{
 
  b1 = ent_create("test1.bmp",vector(42,0,0),NULL);  
  b1.pan = 0;
  
  b2 = ent_create("test2.bmp",vector(10,0,0),NULL);
  b2.pan = -180;
 
  b3 = ent_create("test3.bmp",vector(26,16,0),NULL);
  b3.pan = 90;
  
  b4 = ent_create("test1.bmp",vector(26,-16,0),NULL);
  b4.pan = -90;
  
 
  b5 = ent_create("test2.bmp",vector(26,0,16),NULL);
  b5.tilt = 90;

  
  set(b1,DECAL);
  set(b2,DECAL);
  set(b3,DECAL);
  set(b4,DECAL);
  set(b5,DECAL);

  
}


Re: Voxel fürs 3d Gamestudio [Re: ratz] #429145
09/09/13 12:47
09/09/13 12:47
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
was ich mit meinem letzten post meinte:

Code:
you = ent_create("test1.bmp",vector(42,0,0),NULL);  
you.pan = 0;
set(you,DECAL);


und ich wiederhol mich nochmal, 1 entity = 1 block ist VIEL zu ineffizient.
1 entity = 1 block-seite ist da noch schlimmer.


POTATO-MAN saves the day! - Random
Page 1 of 6 1 2 3 4 5 6

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1