• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Feine Textur für einen kleinen HUD, wie macht man das?

Jenna Felton

Superstar
Hallo, habe eine Frage an Graphikkünstler, das Problem ist aber vielleicht so nicht lösbar.

Also ich möchte auf einem HUD diese Textur darstellen:

attachment.php

Dabei wollte ich dass die Linien eine 3d Optik behalten, der Hud sollte aber so 32x48 Pixel klein bleiben. Weil der Hud so klein sein sollte, habe ich die Textur auf 256x512 skalliert hochgeladen, aber ich glaube nicht es würde was ändern wenn ich die Originalgröße von etwa 800x600 nehme (wird dann eh skalliert) oder auf 512x1024 hochskalliere. Also so stellen mir den Hud Singularity und Firestorm dar:

Singularity:
attachment.php


Firestorm:
attachment.php


Bei Singularity ist die darstellung verfranzt, beim Firestorm etwas weicher. Die 3D Darstellung der Linien ist aber kaum erkennbar. Und ist kaum schön bei beiden Viewern. Ich wollte dass der Hud permanent angezeigt wird, also das Gerät sollte so gut wie permanent bleiben, zumindest das Globus in der Mitte, der Ring außen erscheint nur wenn der Hud in Aktion tritt, ist aber andere Geschichte. So möchte ich es nicht rausgeben, soll das Auge des Nutzers schmeicheln und nicht kratzen :)

Evtl ist das kein Viewer problem, sondern das meiner Graphikkarte, oder ich will was erreichen was nicht geht. Genau auf 32 Pixelhöhe zu stellen habe ich gar nicht versucht, weil ich nicht weiß wie groß die Darstellung bei anderen wird, wer diesen Hud nutzen möchte. Um das Viewerproblem zu abzugrenzen, könnt Ihr bitte mal was testen:

Baut bitte eine Holzbox, also einfach erstellen, dann einen neuen Skript darin. Diesen öffnen, und dan Inhalt dadurch ersetzen

Code:
default {
	state_entry() {}

	attach(key attached)	{
		if (attached == NULL_KEY) return;

		llSetScale(<0.02000, 0.06250, 0.04878>);
		llSetTexture("386a7481-0b30-c875-fa5d-d4a08180a66c", ALL_SIDES);
		llSetPrimitiveParams([PRIM_FULLBRIGHT, ALL_SIDES, TRUE]);
	}
}

Dann die Box ins Inventar aufnehmen und am HUD Center oder Center2 aufsetzen. Der Skript weißt die Textur zu, und stellt die Größe ein. Wird das Bild dann genauso unschön aussehen wie bei mir oder schon passabel?

Falls nicht, muss ich mir was anderes überlegen, da wäre andere Frage, wie macht man normalerweise bei Bildern für kleine HUDs?

Edit: Im Grunde kann ich auf die 3D Darstelung bei den Linien verzichten, das Bild sollte nur möglichst scharfe Linien haben, dann aber nicht ausgefranzt an den Rändern.

LG
Jenna
 
Zuletzt bearbeitet:
Die Linien auf der Kugel sind bei mir nahezu unsichtbar, ist genau wie bei deinen Bildern. Viewer ist FS.

Weiter kann ich dir aber nicht helfen. :)
 
Erstell die Textur mit 300 DPI auf mindestens 1024 Pixel und speichere sie so riesig.
Danach oeffne die Textur neu und reduziere sie auf nicht mehr als 512 Pixel, die DPI sollte dabei erhalten bleiben und somit auch die quallitaet.
Dann lade sie mal hoch, es sollte wesentlich besser aussehen.

LG
Dae
 
Ob die Linien/Pixel scharf sind oder nicht, das hängt zum einen von der Einstellung des Treibers ab (Antialiasing, Texturqualität usw.) aber auch von der Texturgröße und vom Monitor bzw. von der Höhe des Viewerbildes - die Anzahl der vertikalen Pixel gibt dabei direkt an wie viele Pixel pro Meter der Viewer bei HUDs verwendet. Das HUD ist dabei immer genau 1m hoch.
(File:HUD-center-coordinates.png - Second Life Wiki). Wie groß das dann genau wird kann man leider nicht vorraussagen, das hängt direkt von der Größe des jeweiligen Viewer Fensters ab.
Hat man z.B. 1920 x 1050 Pixel im Viewerbild, dann verwendet der Viewer 1050 Pixel pro Meter bei HUDs (horizontal und vertikal). Hat man nur 750 Pixel vertikal, dann verwendet der Viewer eben 750 x 750 Pixel für eine 1m Fläche. Und dein Würfel mit 0,02m x 0.06m x0.04m wird dann z.B. auf der 0.06m x 0.04m großen Seite dann 63x42Pixel groß sein auf dem hohen Monitor (das ist in etwa die Auflösung, die du hier bei den kleinen Bildern hast) bzw. etwa 45 x 30 Pixeln beim kleinen Monitor.

Dafür eine 256x256 oder gar eine 512x512 Pixel große Textur zu nutzen ist allerdings nicht nur unnötig groß, weil das sowieso nie in der Auflösung zu sehen ist - du kriegst durch die kleninere Skalierung auch diese Unschärfen rein. Besser ist es da, eine 64x64 Pixel Textur für das icon zu verwenden und diese eben entsprechend "scharf" und "3d" zu gestalten. z.B. so:
2ih9pn9.png


Insgesamt ist aber das Symbol auch nicht wirklich ganz ideal für so eine kleine Skalierung, es hat bisschen zu viele Details.
 
Erstell die Textur mit 300 DPI auf mindestens 1024 Pixel und speichere sie so riesig.
Danach oeffne die Textur neu und reduziere sie auf nicht mehr als 512 Pixel, die DPI sollte dabei erhalten bleiben und somit auch die quallitaet.
Dann lade sie mal hoch, es sollte wesentlich besser aussehen.

LG
Dae

Die DPI (Pixel pro Zoll) sind hier völlig wurscht, die geben eigentlich nur an wie groß das Bild dann irgendwann beim Ausdruck wäre. Und haben in SL bzw. im Viewer dabei keinerlei Bedeutung. Wichtig ist hier eigentlich nur das Pixelmaß selbst (z.B. 512x512 pixel) und die absolute Texturgöße, die nacher im Viewer zu sehen ist (z.B. ein Prim mit 0.4m x 0.6m im HUD).

[Abgesehen davon hast du bei der Reduzierung von 1024 auf 512 immer einen Qualitätsverlust bzw. Detailverlust, das Bild wird bei konstanten 300dpi dann eben nicht mehr 8.6x8.6cm, sondern nur noch 4.3 x4.3 cm groß sein bei einem Ausdruck bzw. halb so groß in einem Bildbetrachter, der Pixelgenau auf dem Monitor abbildet]
 
@ Shirley

Ja sorry, ich kann auch nichts dafuer das die Bilder beim Verkleinern weniger Pixel haben als vorher. Ich habe nur die Erfahrung gemacht, das die Bilder beim verkleinern mit hoher DPI wesentlich weniger Quallitaetsverlusst haben und das Ergebniss in Second Life eindeutig besser aussieht als mit den voreingestellten 72 DPI in beispielsweise Photoshop.
 
Wie verkleinerst du die Bilder, also, mit welchem Programm? Eventuell arbeitet das Progamm bei bei verschiedenen DPI bisschen anders.
Beim Photoshop und soweit ich weiß auch bei Gimp hängt das Ergebnis der Skalierung jedenfalls einzig und allein vom Verhältnis der Formate (gerade/ungerade Pixelverhältnisse) und von der Verwendeten Methode (Pixelwiederholung/bilinear/bikubisch) ab. (Um das genau zu sehen muss man das Bild allerdings auch jeweils Pixelgenau auf dem Monitor anzeigen dann, d.h. mit einer 100% Skalierung).

Eigentlich sind die dpi nämlich nur Meta-Informationen im Header der Bilddatei, die z.B. beim Entpacken von png oder jpeg in eine Bitmap (Raw-datei) im Speicher und bei der anschließenden Umwandlung in jpeg2000 verloren gehen (bzw. gar nicht erst ausgelesen und auch nicht in das jpeg2000 geschrieben werden), vermutlich weil sie in SL irrelavant sind. D.h. der Viewer kennt die "Density"/"Punktdichte" überhaupt nicht. Alles, was der Viewer aus dem Header der Texturdatei kennt ist Kompression (falls vorhanden), Höhe, Breite und Anzahl der RGB Kanäle bzw. bei jpeg2000, die er vom Server bekommt dann noch die Discard Level.
 
Mir erscheint es logisch das mehr Details sichtbar je mehr Bildinformationen vorhanden sind

Wo sind da mehr Bildinformationen vorhanden bei einer höheren DPI zahl? *wunder* Das ist nur eine Metainformation. Das Bild hat immer z.B. 1024 x 1024 Pixel und 3 Kanäle mit je 8 bit Farbinformation. Egal ob da im Header "Densitiy 3dpi" oder "Densitiy 3000 dpi" steht - im Computer wird das Bild normalerweise immer pixelgenau bzw. passend skaliert angezeigt.
 
Danke Euch für die Mithilfe :)

dann weiß ich definitiv, dass ich am Bild noch arbeiten muss. Ich versuch alle Tips, auch den mit erhöhten dpi Zahl (hatte auch nicht gedacht dass sie was ändert aber versuch ist es wert). Wennn trotzdem nichts hilft, mache ich eine 2D Version daraus mit Glasschicht darüber. Photoshop habe ich nicht, habe Paint.Net, Gimp und den schon etwas älteren Corel Drraw 10.
 
Was die Kanten betrifft, versuche mal nicht in tga zu speichern, es gibt in Gimp auch noch ein anderes Format das Alpha unterstütz, da passiert das wohl nicht.
Ich habe in PSD dasselbe Problem mit tga, wenn ich keinen solidyfilter verwende.
 
@ Shirley

Wenn du ein 1024px Bild mit 72DPI auf 512px oder weniger verkleinerst, verwaschen die Details und/oder das Bild wird unscharf
Machst du das selbe aber mit dem gleichen Bild auf einer 300DPI basis, bleibt das Bild beim verkleinern schaerfer.
Natuerlich muss das Bild schon vor dem Erstellen auf 300DPI eingestellt sein und man das vor dem Upload nach Second Life verkleinern.

Manchmal sind Regeln und graue Theorie einfach scheiss egal, einfach mal machen und ueber das Ergebnis freuen.

LG
Dae
 
Zuletzt bearbeitet:
Ja ich denke das müsste PNG sein, es unterstützt zumindestens Alpha. Leider nicht in PDS, darum kann ich es nicht genauer sagen.

Den Tip mit den 300PI werde ich das nächste Mal unbedingt mal ausprobieren - das war mir jetzt komplett neu aber klingt interessant. Ein Bild auf 64 bit Größe zu erstellen gelingt mir zumindestens von der Arbeitsgröße her nicht. Aber wenn es da einen Trick gibt das man da nicht mit den ganzen krümeligen Pixel in der Zoomansicht hadert, immer her damit :)
 
Ja, das war PNG.

So, habe das Bild nachgezeichnet. Dabei hatte ich die Farben der 3D Farbverläufe nicht abgespeichert, jetzt ist aus Eisen Silber geworden :)

Habe jedenfalls mit 1024 Pixel groß angefangen (1024x781), 300 DPI. Dann successiv die Gröe halbiert und das Bild geschärft. Bis 128 Pixel blieb das Ergebnis noch ansehnlich, habe dann von 256x196 Pixel auf 128x128 Pixel skalliert und das Bild hochgeladen, also via gimp als tga und png exportiert. Plus das Bild noch auf 64x64 Pixel verkleinert und ebenfalls hochgeladen. Die Blder sehen in der Gegenüberstelung so aus:

Singularity:
attachment.php


Firestorm:
attachment.php


Jeweils mit einer weißen Fläche dahinter und einer grauen Wand. Höhere Auflösungen bieten nur wenig bessere Darstelung. Und nur geringfügig bessere Darstelung zum Bild vom Anfang. Beim weißen Hintergrund sind die Ränder ausgefranzt im Singulrity, aber nur beim hellen Hintergrund. Beim Dunklen Hintergrund stellen beide Viewer die Bilder ähnlich dar.

Äußerer Ring hat die 3D Optik behalten, er war mit 40 Pixel im Original. Der Globus war mit 27 Pixel breiten Linien gezeichnet, die erkennt man kaum im Bild, obwohl sie etwa 4 Pixel breit sein müssten durch Verkleinerung. Vieleicht ist mir ein fehler unterlaufen, aber ich denke auch, ich habe zu kompliziertes Moriv ausgedacht. Ich verzichte auf 3D Linien, zeichne sie einfarbig, das müsste sie eigentlich scharf lassen.
 
Zuletzt bearbeitet:
Ich finde das Ergebnis ziemlich gut, wenn nicht sogar umwerfend:razz:

Davon, dass der Wechsel von TGA zu PNG keine Veränderung bringt, bin ich schon überrascht. Möglich, das es gar kein Halo Effekt ist, sondern etwas ganz anderes beim Singulary Viewer.
Kann es sein das es an anderer Grafik Einstellung- oder Unterstützung liegt, das die Darstellung so abweicht? (Ich kenne den Singulary Viewer nicht so, eher gar nicht)
 
Danke für den Lob Geeske :)

Beide Viewer stehen eigentlich auf etwas beser als minimale Graphikeinstellung. Beim Firestorm war Antialiasing 2x aktiv, bei Sigularity habe ich die Einstelllung von Antialiasing gar nicht gefunden. Abschalten von Antialiasing beim FS hat nichts am Bild verändert. Aber den Unterschied habe ich doch herausgefunden. Der Firestorm sollte bei der Fenstergröße 1024x768 stehen, und Singularity war komischerweise auf 1033x768. Als ich auf 1024x768 gestellt hatte, machte er mir dasselbe Bild wie Firestorm. Das entspricht auch dem was Sirley vorhin gesagt hat :)

Das zeigt wiederum, wie auflösungsabhängig ist mein Icon.
 
Zuletzt bearbeitet:
@ Shirley

Wenn du ein 1024px Bild mit 72DPI auf 512px oder weniger verkleinerst, verwaschen die Details und/oder das Bild wird unscharf
Machst du das selbe aber mit dem gleichen Bild auf einer 300DPI basis, bleibt das Bild beim verkleinern schaerfer.
Natuerlich muss das Bild schon vor dem Erstellen auf 300DPI eingestellt sein und man das vor dem Upload nach Second Life verkleinern.

Manchmal sind Regeln und graue Theorie einfach scheiss egal, einfach mal machen und ueber das Ergebnis freuen.

LG
Dae

Schön, dass es bei dir Funktioniert, aber wie verkleinerst du das Bild? Gimp, Photoshop, MSPaint? Oder ?

Ich hab das mal im Photoshop angeschaut und im Gimp, und da gabs überhaupt keinen Unterschied bei den Pixeln, die Bilder sind (wenn man jeweils die selben Methoden verwendet) immer noch Pixel-Identisch, egal ob man da mit 300DPI oder 72 DPI kleiner skaliert. Wenn man das Bild "pixelgenau" anzeigt (und nicht die "tatsächliche Größe" oder "Ausgabegröße") sieht man überhaupt keinen Unterschied. Man sieht eventuell dann einen Unterschied, wenn man die DPI ändert (und damit die Ausgabegröße), so dass das Bild auf dem Flatscreen nicht kleiner wird, so dass 1 Pixel des Bildes nicht mehr sauber auf 1 Pixel des Monitors abgebildet wird. (der mit 96 dpi arbeitet.. weswegen z.B. auch Browser die DPI der Bilder meist ignorieren..)

Der Viewer liest in llimagejpeg.cpp und Co. jedenfalls keine DPIs und sonstige derartige Details aus den EXIF-Daten aus. Er baut einfach Pixel für Pixel die "Reihen" des Bitmaps zusammen aus dem entkomprimierten jpeg Stream. Diese Info geht also beim Upload verloren. Der Viewer weiß nicht, ob das ein 200 dpi oder ein 10 dpi Bild ist.
 
Wie ist es im Komprimierungsprozess bei der Umwandlung in PNG. Wird dabei die DPIs berücksichtigt für die Berechnung?
Wenn dem so ist müsst die Ausgabedatei unterschiedlich groß sein.
 

Users who are viewing this thread

Zurück
Oben Unten