Hier auch ein Texturenproblem (Ungewollte Grössenänderung)
Übersicht

![]() |
ZaPBetreff: Hier auch ein Texturenproblem (Ungewollte Grössenänderung) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Servus,
Ich arbeite zur Zeit an einem BSP loader, und die lightmaps befinden sich im selbigen. Ich kann sie auch korrekt auslesen, und habe auch die VertexTexCoords. Ich arbeite mit zwei TexCoord sets, einmal für die Textur an sich und einmal für die Lightmap. Mein eigentliches Problem liegt aber darin, dass ich einzelne Rechtecke aus einem Lightmap image auslesen muss, bsp hier: https://www.blitzforum.de/upload/file.php?id=2836 (das Rote Quadrat wird ausgelesen, und als lightmap verwendet) und der auszulesende Bereich ist 17x17 pixel, daraus soll eine Textur gemacht werden, welche wiederum zu einem Brush gehört, der dann auf ein Surface zeichnet. Aber BlitzBasic ändert die Texturgröße auf eine zweierpotenz, in diesem Falle 16x16, dadurch stimmen die VertexTexCoords nichtmehr. Kann man das kompensieren, oder sonst irgendwie umgehen? MfG |
||
Starfare: Worklog, Website (download) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Texturkoordinaten sind immer 0,0 links/oben und 1,1 rechts/unten. Bei einem Brush in Blitz3D kann rechts/unten (je nach Einstellung) skalliert mitberechnet werden. In deinem Fall sollte es reichen auf eine automatische Umrechnung zu verzichten bzw. bei ql:LOADBRUSH die letzten beiden Parameter auf 1 zu stellen.
Aber was spricht dagegen die Textur so zu belassen wie sie ist und die UV-Koordinaten zu übernehmen. Denn jeder Brush oder textur nimmt ein Surface weg, und wenn ein paar davon vorhanden sind, dann zieht es enorm an der Performence. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, das funktioniert leider nicht ganz so, da ich den Brush nicht etwa eine Textur laden lasse, sondern ihm eine bereits vorhandene zuweise. Funktioniert das in diesem Fall auch mit einer anderen Möglichkeit?
Ich habe für gleiche Texturen immer ein Surface, am Ende sind es immer so um die 35. |
||
Starfare: Worklog, Website (download) |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wo ist da das problem?
Rechne Pixel in UV um und belasse es auf der Surface und pass die Vertex U und V Koordinaten an 1 Pixel entspricht in U 1.0/texturewidth(tex) und in V entsprechen 1.0/textureheight(tex) das dann einfach mit der zahl an pixeln multiplizieren und du weisst wie gross es ist. eine möglichkeit um 2er potenz quadratisch rumzukommen gibts nicht, so sehen es die DX7 spezifikationen vor. kannst die befolgen oder dich auf bugreports freuen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group