miniB3D - Fragen zu Texturen

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Tennisball

Betreff: miniB3D - Fragen zu Texturen

BeitragFr, März 25, 2011 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich programmiere zurzeit ein 3D Spiel und nutze das miniB3D Modul.
Nun habe ich zwei Fragen zum Thema Texturen, dazu erstmal ein Screenshot:

Screenshot

So, wie ihr hier sehen könnt, ist die Textur auf den Blöcken verschwommen, sie ist auch nur 16x16 Pixel groß. Gibt es eine Möglichkeit die Textur trotzdem scharf (aber verpixelt) anzuzeigen?

Zweitens: Der "Boden" hat die selbe Textur wie die Blöcke, allerdings wird diese einfach braun dargestellt. Diesen Boden erstelle ich, indem ich ganz viele von diesen Dingern, die mit dem folgenden Code erstellt werden, aneinander hänge.
BlitzMax: [AUSKLAPPEN]
Function CreateTile:TMesh()

Local temp:TMesh = CreateMesh()

Local brush:TBrush = CreateBrush( 255, 255, 255 )

Local surface:TSurface = CreateSurface( temp, brush )

AddVertex( surface, 0, 0, 0 )
AddVertex( surface, 1, 0, 0 )
AddVertex( surface, 1, 0, 1 )
AddVertex( surface, 0, 0, 1 )

AddTriangle surface, 2, 1, 0
AddTriangle surface, 0, 3, 2

UpdateNormals temp

Return temp

End Function


Wie bringe ich diese "Dinger" dazu, die Textur richtig "darzustellen" ?

Danke im Voraus und mfg,
Tennisball

P.S.: Nein, es wird nicht der 100. Minecraft Clone.
 

undefined

BeitragFr, März 25, 2011 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Heyho,

ich hab von miniB3D keinen Plan, ich weis nur, dass es auf OpenGL aufbaut. Demnach gibt es für Dein erstes Problem definitiv eine Lösung: Du musst die Textur-Interpolation auf GL_NEAREST einstellen. Wie gesagt, keine Ahnung, ob miniB3D dafür direkt Funktionen besitzt, sonst musste die OpenGL-Funktionen da irgendwie reinfummeln.

Beim zweiten Problem liegt es an den UV Koordinaten. Deine Beschreibung lässt darauf schliessen, dass diese nicht vorhanden sind. Auch sehe ich in Deinem Codeausschnit keine Einstellungen für die UV Koordinaten. Was dieses Problem betrifft, gehe ich mal stark davon aus, dass miniB3D passende Funktionen zur Verfügung stellt.
  • Zuletzt bearbeitet von undefined am Fr, März 25, 2011 20:49, insgesamt einmal bearbeitet

ToeB

BeitragFr, März 25, 2011 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Denk cih mal liegt an den gleichen UV - Koordinaten (bei allen 4 Vertices sollte die UV 0,0 eingestellt sein).

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Tennisball

BeitragFr, März 25, 2011 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal für die Antworten.

Das Problem mit den Tiles am Boden hätte ich gelöst, auch wenn die Textur dort gleich verschommen aussieht.


Welche OGL Funktion muss ich denn benutzen, um das Problem mit der verschwommenen Textur zu beheben?

mfg,
Tennisball
 

undefined

BeitragFr, März 25, 2011 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Folge dem weissen Kaninchen: http://wiki.delphigl.com/index.php/glTexParameter

( noch ein Hinweis dazu: GL_TEXTURE_MIN_FILTER , GL_TEXTURE_MAG_FILTER )

Tennisball

BeitragFr, März 25, 2011 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Folge dem weissen Kaninchen

Welches Kaninchen ? :/

Ernsthaft:
Wo muss ich denn das hinschreiben? Wenn ich es so mache:
BlitzMax: [AUSKLAPPEN]
glTexParameterf GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR
earthtexture = LoadTexture( "gfx\earth.png" )

verändert sich rein gar nichts. Auch mit anderen Parametern nicht.

mfg,
Tennisball
 

undefined

BeitragFr, März 25, 2011 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht doch schon ganz gut aus. Die Reihenfolge stimmt nur nicht. Smile

Mit dieser Funktion veränderst Du die Attribute der gerade aktiven Textur, d.h. vor dem Laden kann Deine Textur ja auf keinen Fall aktiviert sein. *g* Ich vermute, dass sie nach dem LoadTexture Aufruf durch miniB3D noch aktiviert ist (ich weis wie gesagt nicht viel, über miniB3D). Es wäre auf jeden Fall einen Versuch wert, die Funktion nach dem Laden auszuprobieren. ^^

Das weisse Kaninchen war im übrigen der Link... Rolling Eyes

Tennisball

BeitragFr, März 25, 2011 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch wenn ich es danach schreibe, passiert nichts.

mpmxyz

BeitragFr, März 25, 2011 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
GL_TEXTURE_3D -> GL_TEXTURE_2D
Deine Textur ist nicht dreidimensional.
GL_LINEAR -> GL_NEAREST
Lineare Interpolation ist das, was du nicht sehen möchtest.
Was passiert dann?
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Tennisball

BeitragFr, März 25, 2011 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Es verändert sich auch hier nichts.. :/

Zitat:
Ich vermute, dass sie nach dem LoadTexture Aufruf durch miniB3D noch aktiviert ist

Und wenn sie das nicht ist? Wie finde ich raus, ob sie das ist, bzw weiß das jemand?


Ich freue mich über weitere Antworten.
mfg,
Tennisball

Goodjee

BeitragSa, März 26, 2011 1:35
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=32978

die dame hat es geschafft
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Tennisball

BeitragSa, März 26, 2011 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
oh, danke danke, es funktioniert prima ! Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group