3D Entity System [DE]

Previous topic - Next topic

x-tra

#180
Naja, wie funktioniert es denn zur Zeit?
Also was machen die entitycreatebumplight cel usw. befehle?
Und was für eine textur nimmt man denn als 2. multitextur?

wie das woanders gehandhabt wird, schau ich dann gleich mal.siehe hier: http://www.blitzforum.de/help/TextureBlend und hier http://www.blitzforum.de/help/LoadAnimTexture und hier zum licht http://www.blitzforum.de/help/?subcat=69

ich hab da mal die links gesetzt, weil ich nicht weiß, wie du was kombinieren willst. Hoffe das ist okay so, ansonsten schick ich sowas per PN.

Gernot, ich hab dir mal ein pdf geschickt, das sollte doch ein wenig helfen.

Zum Thema "EntityPointTo"  einfach ein entitysetrotation, dann wäre blickrichtung vom parent aus gesehen.aber da das entity das child wäre, dürfte es ja kein problem sein.p.s. wenn ein entity child von etwas ist, kann es sich ja drehen wohin es will.nur wenn parent rotiert, dann gibts ein entityrotation fürs child.
wenn ich entitysetrotation jetzt richtig verstanden habe...? setzt den drehwinkel eines entities auf einen bestimmten winkel.richtig, oder hab ich das falsch verstanden?

p.p.s.s. bei deinem beispiel test2 hab ich mir die winkel angeschaut, da gibts zwei, die nur entweder 0 oder 180 grad sind, ist das korrekt so?kam mir komisch vor, habs aber nicht weiter angeschaut.

achja, bei deinem entitysetrotate wird doch ein winkel bzw. eine rotation festgelegt, die immer um den nullpunkt des globalen koordinatensystem hat, oder?  eulerscher winkel! wenn ja, dann fehlt noch die rotation auf einen festen expliziten winkel lokal, also wie entityrotate, nur eben winkel unabhängig vom vorherigen.

Kitty Hello

EntitySetRotation setzt die winkel relativ zum Parent. Ganz global hab ich's noch nicht drin.
Da müsste man die Rotation des Parents invers multiplizieren vorher.

x-tra

Ich hab jetzt mal bei verschiedenen enginen geschaut, ausser bei bb3d und cobra auch noch bei diversen entity systemen anderer engines.

so langsam verliere ich den überblick.

vielleicht wäre es tatsächlich am einfachsten, entweder a)  diese befehle mit dem optionalen global oder relativ paramter zu versehen und dieser muss ja nicht optional sein, kann man ja als 0 oder 1 festlegen, oder false und true
                                                                oder b) seperate befehle für global und relativ

auf jeden fall leistet die hilfe von bb3d auf deren deutscher seite eine gute hilfe, hoffe du bekommst das irgendwie hin, ich kanns leider nicht

fehlen ja nicht mehr viel sachen, freu mich schon tierisch drauf.

wenn ich ein child, obwohl es vom parent abhängig ist, um die eigene achse drehen will.

meinst du das?

oder was meinst du mit globaler rotation. ansonsten pivot bei 0,0,0 und alles drumherum drehen.


Ganz wichtig: such mal in der pdf die ich dir eben geschickt hatte, nach
Code (glbasic) Select
RotateEntity und
Code (glbasic) Select
EntityPit,
Code (glbasic) Select
EntityYaw,
Code (glbasic) Select
EntityRoll.

Du kannst da sicher mehr damit anfangen, weils glaub ich schon wieder um matrizen geht bei der globalen geschichte.

schaus dir mal an, ich werd da nicht so richtig schlau draus.Naja beschäftige mich mit matrizen auch erst seit kurzem.

x-tra

#183
Nundenn gernot, hab bisschen gebastelt, und ich weiß nicht, mit dem licht gibts wohl probleme, aber sieh selbst.

okay die steuerung ist M und N links rechts, und linke cursortaste ist vorwärst, frag nicht warum, egal.

jedenfalls createbumplight, sher eigenartiger effekt auf dem gelben ring, aber bei dem normalen licht, wird der level total grobpixelig.

seht selbst, nicht über code wundern, hab nur schnell zusammengebastelt, zum zeigen.

http://www.zshare.net/download/1387598705adcdf0/

eine normale ausleuchtung hätt ich gern, oder mach was falsch?

und nicht grobpixelig....

[edit] achso, hab einfach alle lichter weggelassen. aber wozu sind die lichter dann da? weil sie verändern ja die ganze szene, und welcher zusammenhang besteht da nun zwischen multitexturing?


[wichtig] @gernot: ich hab dir ja jetzt ungefähr geschildert, was noch für befehle fehlen, aber ich benötige nun noch effekte, die mit glb im moment nicht möglich sind, und mir das wissen fehlt, um diese eigenschaften selbst anzufügen.Ich bin ja nun für meine Hartnäckigkeit hier bekannt, aber ich weiß auch, dass das ganze Entity System nicht ganz so leicht zu programmieren ist.
Man müsste die komplette Funktionalität von BB3D wenn auch mit anderen Befehlsnamen in GLB haben.
Warum das Rad neu erfinden?
Es zieht sich ja nun schon eine Weile hin, und ich will auch nicht weiter drängeln, daher lege ich es nun in Deine Hand, ob du das Entity System einführst.Und in welcher Form.
Ich werde zur Stelle sein, wenn alle Befehle, die die gleiche Funktionalität wie in BB3D gewährleisten, vorhanden sind.
Es muss nicht gleich implementiert sein, so eine .gbas reicht erstmal völlig.
Bis dahin werde ich mich ein wenig zurückhalten und mein Spiel in C3D weitercoden, da dies wesentlich einfacher zu handhaben ist, was diese meine Problematik anbelangt.Ich weiß, ich hab jetzt so genervt, aber wenn ich der Einzige bin, der hier das Ganze vertritt, hat so wenig Sinn.Ich habe ja schon den Vorschlag gemacht, die kompletten Befehle zu übernehmen, da diese funktionieren.der minib3d mod quelltext für BM, sollte dir eine Hilfe sein.Vielleicht schaffst Du es ja doch noch das ES zu etablieren, dann werde ich da sein, und testen.
Bis dahin verabschiede ich mich von hier erstmal auf unbestimmte Zeit.Vielen Dank trotzdem für Deine Mühen bisher.(p.s. c3d basiert ebenso auf opengl, und die features dort, sind, entschuldige, eine klasse für sich.auch wenns konkurrenz ist, so hätte man es als motivation und hilfe sehen können.ich weiß, du hast mir geschrieben, du willst cobra3d nicht nachprogrammieren, aber letztendlich führt die erstellung einer so komplexen programmiersprache doch immer in eine richtung.und glb ist ohne ES einfach nicht anfängerfreundlich, für die die es können, mag es gehen, aber alle anderen suchen sich was leichteres, gerade in 3D)
Haltet mich auf dem laufenden, ich schau trotzdem ab und zu rein, ob es hier in diesem thread in ein paar wochen, monaten, oder jahren soweit sein wird, dass das ES steht)Ich will später zu linux entgültig wechseln, und da steht meine wahl zwischen BM und GLB, ich würde allein wegen der community hier schon GLB bevorzugen, aber BM mit mods bietet einfach im moment viel mehr)Ich hoffe ihr bekommt das ES hin, bin ja nicht nur ich, dem es gefallen würde, nur leider programmieren zu wenige in 3D wie es aussieht)
Ich sitz hier auf nen haufen leveln, und will die auch einsetzen...sorry gernot.

Kitty Hello

Du machst ein Bump-Light. Dann musst Du auch eine Bump-Textur für alle Objekte angeben.

Ich schau mal wie die anderen das machen, dass man bump mapping nur für bestimmte Objekte hat.

x-tra

#185
genau das ist es ja.ALLE Objekte, das ist ja nirgends erwünscht.

Kann ich dir nicht einfach eine Liste mit allen Befehlen geben, die das ES haben soll, mit Erläuterung dazu, und du baust es einfach?

Dann mach ich hier weiter......

(wie gesagt, ich würd sogar was dafür zahlen, nur will ich an diesem WE ein Stück fertig werden mit meinem Spiel)

also wenn du dir mal die cobra referenz angesehen hättest, wüßtest du das es bei den lights sowas garnicht gibt, dafür andere effekte.
schaus dir dochmal an.....
ich mein du kannst immer noch sagen, du willst es so nicht machen, aber ideen kannst du dir dort holen, auf jeden fall.
achja, ich weiß nicht, ob das am ES liegt, aber ich muss bei c3d die geschwindigkeit mittels deltatimer begrenzen, weil allein moveentity rast dort um ein vielfaches schneller, aber das nur am rande.es basiert ebenso auf opengl, also müsste all das auch hier möglich sein.

wie gesagt, macht das ES fertig, ich hab gesagt, was ich gern hätte, übersetz doch die Tentity.bm die ich dir geschickt habe, und ich und so einige andere wären glücklich. effekte kann man auch noch beifügen, entsprechend eine komplette liste würde ich machen, die sollte aber dann auch umgesetzt werden.
ich habe keine lust immer ein stückchen zu programmieren, und dann paar tage zu warten, ob nun was kommt oder nicht.

die befehle müssen komplett dasein, man kann da ja nix mischen, das ES muss vollständig sein, am besten noch mit effekten, infos und so.

ich biete dir, gernot, hier nochmal an, eine befehlsliste mit erläuterung zu schreiben, die dann so nachgebaut werden sollte.

dann kanns weitergehen...

[ed] ich will mal nicht so sein, ein auszug aus der c3d hilfe.damit sollte das klar sein, dass bumpmapping IMMER objektbezogen ist, unabhängig von irgendeinem licht.Weil bumpmapping besagt, dass eine extra graue(verschiedene grautöne ähnlich heighmap) textur diesen bum effekt erzeugt.Wenn ich eine apfelsine habe, ist die oberfläche so bumpig halt, der tisch auf dem sie liegt jedoch nicht.
daraus schlußfolgern wir, dass bumpmapping ein effekt, das ein objekt mit einer bumpmap überzogen sein muss, und unabhängig der lichtquelle diesen Effekt erzeugt.Weißt wie ichs mein.Ich helf gern weiter, aber ich muss nicht jeden befehl erklären.wenn du die befehle, samt beispiele siehst, ist es selbsterklärend.was sagst du gernot.

CreateBumpMap(( filename:string):entity)

Code (glbasic) Select
MAT = CreateBumpMap('media\bumptest2.png')
  mat2 = CreateTextureMaterial('cols','media\marbletiles.jpg')
 
  shader =CreateShader(c3d_shaderBasicBump)
  MatSetTexture2(mat,mat2)
  MatUseShader(mat,shader)
 
  mesh = CreateCube()
  ScaleEntity (mesh,3,3,3)
  EntityUseMaterial(mesh,mat)
  SetCameraTarget(camera,mesh)



x-tra

Ich mach dir ein angebot, damit wir hier mal vorankommen.
Was müsste ich zahlen, damit du dir den gesamten 3d teil von bb3d oder besser noch c3d vornimmst, und komplett, aber wirklich komplett übersetzt für glb?

Das meine ich Ernst, wenn es natürlich am anfang noch bugs hat, kein thema, aber ich denke alle befehle lassen sich testen.
Du kannst natürlich sagen, dass du das nicht nachmachen willst, oder so, aber jeden Befehl einzeln zu wünschen, wenn er gerade benötigt wird, ist keine Option längerfristig, man kann da nix planen im quellcode.

Überlegs dir, ich bin bereit gern Geld dafür auszugeben, aber nur wenn du willst natürlich.
Was sagst Du dazu.

Kitty Hello

Ah! Die machen's über material. Auch net dumm.
Ich hab jetzt mal bump/cel usw. pro Objekt eingebaut. Schatten auch optional.
Mein Problem ist die EntityAlign funktion. Muss ich noch grübeln.

OK,

update online.

PS: bin im chat.

x-tra

zum thema blickrichtung.

Code (glbasic) Select
Lokale Blickachse ist immer Z, X ist nach rechts, Y nach oben.

Lokal heisst aus sicht des objektes in seinem eigenen koordinaten system.
Im globalen Koordinaten system ist es auch einfach rauszufinden. Einfach mit TFormVector die Vektoren 1,0,0 und 0,0,1 von Camera nach 0 transformieren und du weisst anhand von TFormedX - TFormedZ in welche richtung du schaust.


Also die TForm sachen wären also auch noch eine idee.

In welche Richtung schauen wir?lokal gesehen?

Ist doch auch Z.


x-tra

#189
EntityPickLine  Rückgabewert "index"

ist ja eine zahl, oder?

aber ich brauch ja eine entität, und keine durchnummerierung.

probiere grad mit entitypick rum, aber ich muss den rückgabewert ja irgendwie mit den entities abgleichen können.

hab einfach mal entitypick mit print versucht ausgeben zu lassen, geht irgendwie nicht.

und nimm mal das hier als test
Code (glbasic) Select
// --------------------------------- //
// Project: ent1
// Start: Friday, June 20, 2008
// IDE Version: 5.299


// --------------------------------- //
// Project: entpick1
// Start: Friday, June 20, 2008
// IDE Version: 5.299

camera=EntityCreateCamera()
EntityEnable(camera, TRUE)
cube = EntityCreateCube (10)
haupt = EntityCreateCube (20)
piv = EntityCreatePivot()
EntitySetPosition(piv, 0, 0, 0)
EntitySetPosition(camera, 0, 0, -100)
EntitySetPosition(haupt, 0, 0, 0)
EntityParent(cube, piv)
EntityMove(cube, 40, 0, 0)
EntitySetPickable(cube, TRUE)



WHILE TRUE
EntityRotate(piv, 0, 1, 0)
EntityAlignTowards(cube, camera)
EntityDrawSystem()


SHOWSCREEN
WEND


tausche mal bei entityaligntowards die beiden entities aus, da siehst du nämlich nix mehr.

eigentlich müsste doch dann die camera der bewegung des cube folgen, oder?


ich machs dir jetzt ganz leicht, du hast eine pn.


Gernot hier nochmal, kannst du dir das mal laden, entweder texturiert es plötzlich auf der falschen seite, oder ich weiß auch nicht.
bei dem vorherigen es gings.jo, oben gibts automatisch kein licht, nur unten.

war vorher anders.

vielleicht liegt es auch der .ddd datei.

probier mal selbst....

http://www.zshare.net/download/1394520160806581/

x-tra

#190
@gernot: das is ziemlich frickelei im moment.schau mal wegen dem entitypick, oder auch linepick, wie ich das handhaben muss.

dann bau ich die zwei beispiele, oder wenn mir nochwas einfällt.achja, schau unbedingt mal nach, warum mein terrain verkehrt texturiert wird.obs die .ddd ist kann ich nicht schauen, da die .3ds datei in ordnung ist.und nen .ddd viewer kenn ich keinen. .3ds wäre mal doch wichtig, immer das hin und her konvertieren.mmmmm

sooooo, dann schreib ich dir dieses wochenende eine komplette befehlsliste, die noch rein sollten, zusammen mit den jetzigen, ich mach das am besten gleich mal als chm datei.

und du kannst dann ja anfangen alle diese befehle umzusetzen.und als quelle nehm ich erstmal bb, weil da sind die wichtigsten drin.spezielleres erkläre ich genauer, aber auf jeden fall wirds eine 3d chm.

so, nun schau wegen meiner .ddd und den entity- und linepick, k.a. obs nich funktioniert, oder ib ich das bin, habe letzte nacht alles mögliche probiert.


[edit] das ist mir jetzt doch etwas zu frickelig, wenn hier soooo viele bb´ler sind, warum mach ich dann alleine mit dir nur was am ES.
         ich hab dir die demo von c3d geschickt, dort gibt es eine komplette hilfe datei.
         und massig examples, die sämtliche funktionsweisen erklären.

        entschuldige, ich wollte zwar das entitysystem, aber das wird mir selber jetzt zu viel.
        wenn du das entity system fertig machst, wärs super, aber ich bin nicht mehr traurig, wenn nicht.
       
        auf blitzforum.de gibt oben die hilfe, dort werden auch alle befehle erklärt.

       ich setz mich jetzt an blitzmax, dort gibts das minib3d was im prinzip das gleiche ich, wie unser entity system.
         wenn glb die gleiche unkomplizierte funktionalität hat wie bb3d oder cobra3d, dann mach ich wieder was.

        aber diese bastelei ist mir etwas zuviel geworden.

        welche befehle, mit welcher funktion rein sollen, weißt du, am besten und einfachsten eine 1zu1 kopie von einem der beiden
        sprachen, auch wenn das vielen hier gegen den strich geht.

        aber warum das rad neu erfinden, wenn es doch so wie es ist gut rollt.

ich mach jetzt glb urlaub, mach nen neuen thread, oder bereich hier im forum auf, und poste wenn alle befehle final drin sind.
und eben alle befehle und wenn möglich syntaxähnlich und funktionsgleich.

ich schau ab und an hier rein, und stell mich gern als tester zur verfügung, ich hab eigentlich momentan noch genug zeit mich drum zu kümmern, aber das wird so nix, befehl für befehl durchzukauen.

ich mach gern für jeden befehl ein beispiel, aber erst wenn alles steht.

sorry, hoffe du bekommst es noch hin, sonst scheint es ja niemanden zu interessieren, ausser uns beiden.

aber selbst du hast ja gesehen, wie das ES einiges vereinfacht.

Bis dann, melde mich zu wort, wenn ich die commands final sehe.....


p.s. 1. post hier am 10.oktober 2007 das sind jetzt mehr als 8 monate!!!

ich würde wetten, dass du eine 1zu1 kopie von der kompletten 3d syntax schaffen könntest in 2-3 tagen.liege ich da richtig gernot?

tip: nimm die minib3d von mir und ich wette man kann das da drin alles passend umschreiben.ich schick dir nochmal das komplette paket(TEntity ist am interessantesten)

x-tra

#191
So, ich hab dir jetzt mal eine etwas angepasstere version des EntitySystem gebastelt.
Alle Befehle von Dir sind drin, aber neu sortiert, hoffe du findest dich zurecht damit.

Desweiteren habe ich ein paar blanko funktionen erstellt, die zukünftige befehle sein sollen.

Hier die TEntity mit blanko funktionen

http://www.zshare.net/download/13995339e7bfcfa3/

Und hier die Befehle die alle noch rein sollen

http://www.blitzforum.de/help/?subcat=75
http://www.blitzforum.de/help/?subcat=56
http://www.blitzforum.de/help/?subcat=77

alle diese befehle sollen auch noch rein.

ach und eine verbesserung hätte ich noch.schau mal bei dem Befehl EntityFX, unsere bumpmappinggeschichte/multitexturierung usw, müsste sich doch etwas einfacher lösen lassen, oder?

mach ein entityfx blablabla, wenn das nicht gesetzt wird für ein objekt, besitzt es nur EINE normale textur.

Achja, und der teil mit den animationen ist bei den links oben sicher auch interessant, da wir da bis auf einen befehl nix weiter haben.

wenn du die drei links oben hinbekommst, und meine blanko befehle, dann mach ich weiter, brauch nämlich einiges davon, wäre supernett.

mal schauen, wie flink du bist....grins

ähm, wenn das alles funzt, werden die normalen X_ befehle sicher aus der mode kommen.is auch einfacher so, und meiner meinung nach sinn und zweck des ganzen.

glb wäre dann soweit ich weiß, die einzige sprache mit entitysystem was auch funktioniert und multiplattform binaries erzeugen kann.
ausser pb mal mit dem ogre schund, was dort wohl nicht wirklich laufen soll.

die befehle wenn sie stehen, werd ich mir nochmal zur brust nehmen, da ich erst nach tagelangem coden sagen kann, ob eine (kürzere)umbenennung sinnvoll wäre, usw.

so, nu warte ich auf deine comments und work, gernot.

vielleicht haste ja den sonntag über zeit, oder eben in den nächsten tagen mal.
eine bitte, nicht häppchenweise, einfach alle befehle rein, und ich teste dann....

p.s. ich hab nen richtig hübschen level gebastelt grad, richtig knuffig, der wartet auf seinen einsatz...

BumbleBee

Überfordere den armen Mann nicht. ;)

Quote from: Heiko
ähm, wenn das alles funzt, werden die normalen X_ befehle sicher aus der mode kommen.is auch einfacher so, und meiner meinung nach sinn und zweck des ganzen.

Das wäre schlecht. Hab die doch extra auswendig gelernt. :)

Quote from: Heiko
ich hab nen richtig hübschen level gebastelt grad, richtig knuffig,

Lass uns teilhaben und knips mal den Bildschirm ab. :)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

x-tra

sind noch feinarbeiten beim texturieren, dann mach ich mal nen screenshot.

ich will ja nur helfen, grins.

okay bin ungeduldig.

Schranz0r

Ich will sofort nen Screenshot :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard