Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (Quad, degenerate_762), 642 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Terrain bemalen #323643
05/16/10 10:50
05/16/10 10:50
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline OP
User
hopfel  Offline OP
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Hi, ich versuche einen kleinen Terraineditor zusammenzubasteln, mit dem man per Pinsel aufs Terrain zeichnen kann. Ich hab schon nen Pinsel in Form eines Kreises hingekriegt, den ich mit der Maus übers Terrain bewegen kann, und kann schon drauf Zeichnen.
Folgenden Code habe ich bis jetzt:

Code:
function boden() //zum Updaten des Bitmap-pointers fürs Terrain
{
  ent_morphskin(my,boden_str); //Grundtextur auf Terrain setzen
  while(1)
  {
    boden_bmp=bmap_for_entity(my,0);
    wait(-5);
  }
}


BMAP* gras ="gras.bmp"; //grüne Bitmap

function draw()
{
  while(1)
  { 
  if(mouse_left) 
  {
    bmap_blit(boden_bmp,gras, vector(drawpos.x,drawpos.y,0)); //drawpos = Position des Pinsels
  }
  wait(1);}
}


(Das sind die beiden Funktionen, die das Malen betreffen, es fehlen natürlich noch Vector-deklarationen etc.)

Dazu habe ich 2 Probleme festgestellt:

1. Wenn ich aufs Terrain gemalt habe und die Kamera wegbewege,
blendet das gezeichnete langsam aus bzw. wird durchsichtig und die vorherige Oberfläche kommt wieder zum Vorschein. Das stört ziemlich, wenn man das Terrain von weit oben bemalen will.

2. Mit einer einfarbigen Quellbitmap geht das Malen noch ganz gut, aber wenn ich jetzt mit einer Textur zeichnen will, überlappen sich die einzelnen Texturteile, und das sieht ziemlich unschön aus. Die Bitmaps müssten sich irgendwie aneinanderketten lassen.


Hoffe, jemand kann mir helfen.
Lg, Hopfel


Hilf mir, dir zu helfen!
Re: Terrain bemalen [Re: hopfel] #323699
05/16/10 18:31
05/16/10 18:31
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
zu 1. das könnte am Mipmapping liegen. Mipmapping heißt ja, dass die eigentliche Textur durch kleiner auflösende Kopien von ihr angezeigt werden, wenn die Kamera weiter von ihr entfernt ist oder von einem schrägen Winkel auf die Fläche schaut.
Ich stelle mir vor, dass die Mipmaps noch die alten von der ursprünglichen Textur sind.
Entweder müsstest Du sie aktualisdieren (http://www.conitec.net/beta/abmap_to_mipmap.htm) oder die Mipmaps für das Malen "abschalten", z.B. indem Du mip_levels auf 1 setzt (http://www.conitec.net/beta/mip_levels.htm).

zu 2. Ich würde keine Textur direkt draufmalen, damit bleibst Du mit der Auflösungsqualität immer weit hinter dem zurück, was Du mit einem Terrainmaterial erreichen kannst, dass z.B. 3 verschiedene Texturen über eine Bitmap auf das Terrain verteil. In diesem Fall sollte Dein Pinsle diese spezielle Bitmap bemalen, die an den Stellen dann die der Farbe zugehörige Textur zeigt. Dazu muss eventuell der Shader jeweils aktualisiert werden, vielleicht macht er es aber auch von selber...

Re: Terrain bemalen [Re: Pappenheimer] #323701
05/16/10 19:01
05/16/10 19:01
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline OP
User
hopfel  Offline OP
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Erst einmal danke für deine Antwort. laugh
Zu 1.
Ich habe mal versucht, mip_levels auf 1 zu setzen, aber dann kommt, wenn ich das Programm teste, die Fehlermeldung: "Can't create DirectX texture -Name meines Terrains-"
Wenn ich dann die nächsten 6 Fenster per 'OK' weggeklickt habe, funktioniert alles wie es sollte. Wenn ich sie per abmap_to_mipmap aktualisiere, gehts zwar ohne Fehlermeldung, aber es stockt wie gewaltig. 'o.0

Zu 2.
Ich habe so gut wie kein Wort davon verstanden. >.<
Habe aber das Problem (zumindest im Kopf wink ) glaube ich schon gelöst, wenns nicht funktioniert, komm ich später nochmals drauf zurück. ^-^


Hilf mir, dir zu helfen!
Re: Terrain bemalen [Re: hopfel] #323709
05/16/10 19:36
05/16/10 19:36
Joined: Apr 2010
Posts: 172
W
wdlmaster Offline
Member
wdlmaster  Offline
Member
W

Joined: Apr 2010
Posts: 172
zu 1:
bmap_to_mipmap ist schon die richtige Lösung. Allerdings ist diese Anweisung sehr langsam. Ich würde sie immer nur einmal aufrufen, und zwar immer, wenn die Maustaste nach dem Bemalen losgelassen wird:

Code:
char MouseDown = 0;

while (1) {
...
...
if (!MouseDown && mouse_left) MouseDown = 1;
if (MouseDown && !mouse_left) {MouseDown = 0;bmap_to_mipmap (bmap_for_entity(my,0));}
...
...
wait(1);}



zu 2:
Da ist Pappenheimer's Idee auch die richtige Entscheidung. Das bedeutet nichts weiter, als dass du auf deine Textur nur die 3 Grundfarben (+ Alpha) malst, und der shader dann den Rest übernimmt --> nämlich an Stelle der Farben verschiedene Texturen anzuzeigen. So ein shader ist z.B. im "code" Ordner von A7 dabei (Terraintex3.fx)...

Re: Terrain bemalen [Re: hopfel] #323711
05/16/10 19:41
05/16/10 19:41
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Ich habe grad in den GStudio-Ordnern ein wenig herumgesucht und bin etwas fassungslos, dass es dort kein Beispiel eines Terrains der erwähnten Art gibt.
Hier ein Link zu einer Seite, die es so gut erklärt wie es im Manual vielleicht mal erklärt werden sollte:
http://www.darkmountain.de/multiterr_shader.htm

Re: Terrain bemalen [Re: Pappenheimer] #323718
05/16/10 20:40
05/16/10 20:40
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline OP
User
hopfel  Offline OP
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Beides funktioniert jetzt bestens, vielen Dank! :thumbsup:


Hilf mir, dir zu helfen!

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