Autor Beitrag
svenson08
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: So 03.08.03 14:01 
Hallo,

ich möchte die Textur auf einem Objekt etwas verschieben. Also nicht stecken oder der gleichen.
Ich habe einen simplen Cube, den ich mit einer Textur versehen habe. Ich möchte nun die Textur auf dem Objekt nun frei ausrichten, sprich etwas verschieben (etwas höher, oder etwas mehr nach links, etc.). Hat jemand eine Idee wie das geht ?

Sascha
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: So 03.08.03 15:02 
Hi,

ich kann dir nicht sagen wie es bei GLScene geht, aber bei normale, purem OpenGL geht es einfach in dem du die Texturkoordinaten anpasst...

Also nicht die koordinaten von 0..1 vergeben, sondern z.B. von 0,5 .. 1,5. Damit verschiebst du die Textur um die hälfte zur seite :)

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: So 03.08.03 21:03 
Hi Aya,

das war mir schon klar und ich glaube mit purem opengl wäre es auch kein solches Problem. Aber ich benutze glScene und würde gerne wissen wie es dort geht.
Jetzt bitte kein Diskussion anfangen was besser ist, pures Opengl oder eben nicht, das war schon öfters zu lesen und genau so einfach zu beantworten wie was zu erst da war das Huhn oder das Ei.
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.08.03 08:37 
Hi Svenson


das geht bei GLScene genauso (relativ) einfach. Geht nur wenn du mit MaterialLibrarys arbeitest, das ist abber ehe zu empfehlen. Hier hat jedes Material die Eigenschaft TextureOffset und TextureScale. Spiel damit.
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Mo 04.08.03 12:17 
Hi Simon Joker,

da hast du dann aber ein Problem. Nimm mal 10 Cubes, gib jedem die selbe Textur aus der Library und dann verschiebe mal die Textur von cube1. Dann verschiebt sich die Textur auf allen Cubes, logisch ist auch das selbe Lib Item. Nun könnte man schlau sein und für jeden Cube einen eigenen Lib eintrag machen. damit hätte jeder Cube ein LibItem und damit wäre auch auf alle Cubes separat die Textur auszurichten.
Doch wie siehes bei einem Shooter aus, da hast du x-tausend Objekte von denen etliche Texturen etwas ausgerichtet sind (damit die wand etwas flüssiger aussieht, weist was ich meine).
Was ich sagen will, damit bläht sich die Library aber tierisch auf, und somit ist das game nicht mehr perfomant.
Gibt es denn eine andere möglichkeit als über die Library ?
Logiqu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP
Delphi 2006 Pro
BeitragVerfasst: Mo 04.08.03 13:46 
hi! ich habe mich noch nicht mit glscene beschäftigt, aber wenn du die objekte in einem eigenen array oder einer eigenen liste gespeichert hast, dann kannst du doch für jedes objekt eine eigenschaft "TextureOffset" hinzufügen. dann belegst du nicht für jedes objekt einige kb mehr, sondern nur ein paar bytes... die eigenschaft musst du natürlich bei jedem objekt auswerten, bevor du es renderst

_________________
Logiqu. Just feel it...
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Mo 04.08.03 15:04 
Hi Logiqu,

leider haben die Objekte kein TexturOffset, ist von der Verwaltung der Objekte dort anders gelöst, so das dein Vorschlag leider nicht funktioniert. Das TexturOffsett kann ich nur an einem TGLLibMaterial angeben, jedenfalls finde ich keine andere stelle. Weis jemand wo ich den Offset noch angeben kann ?
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Di 05.08.03 11:20 
Hi Svenson

Sicher geht das. Wenn du für jeden Cube oder was auch immer eigene Materialeigenschaften willst , brachst du auch je ein Material! Mache für jede unabhängige Fläche ein Material in der Library. Wenn sie alle die gleiche Textur bekommen sollen, referenziere auf ein Vorlagenmaterial mit der entsprechenden Textur (MaterialLib & Material; die Tex wird nur ein mal geladen). Setze die Texturen der neuen Materialien auf enabled und verändere dann die Offseteigenschaft.
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Di 05.08.03 11:28 
Hi Simon Joker

tut mir leid, aber hier versteh ich nicht was du genau damit meinst.

Zitat:
referenziere auf ein Vorlagenmaterial mit der entsprechenden Textur (MaterialLib & Material; die Tex wird nur ein mal geladen).


Kannst du mir das vielleicht noch etwas anders erklären ?
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Di 05.08.03 11:47 
Ok. Du mach erstmal deine LibraryMaterialien ganz normal, lädst die Texturen und schaltest sie auf enabled.
Dann Kannst du für jeden Cube ein neues Material hizufügen. Jedes LibMaterial.Material hat die Eigenschaft MaterialLibrary und LibMaterial. Hier gibst du das eigentlich Material an. Dann musst du noch die Egenschaft LibMaterial.Material.Texture.Enabled auf true setzen und kannst dieses Material normal verwenden. Die eigentliche Textur wird nur einmal geladen und die zusätzlichen Materialie referenzieren nur auf diese. Verarbeitet werden aber die eigen Eigenschaften (nach denen des orginalen)

BeispielProggie? EMail!
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Di 05.08.03 12:12 
Dann hab ich es jetzt verstanden. Ein BeispielProggie wäre super (Mail Adresse siehe Button).
Der Übersichthalber wäre es doch besser in einer Library die Texturen zu laden und in einer 2. Library die referenzen zu den Texturen, inc. Offsett einstellungen zu verwenden. Sollte doch eigentlich funktionieren