![]() |
RGB to Float3
Wie kann ich RGB Werte nach float3 umrechnen?
Denke mal das RGB(255,255,255) := Float3(1.0, 1.0, 1.0) entspricht. Nur wie berechne ich das finde außer in C++ keine infos darüber.
Delphi-Quellcode:
List.Add('Redwood' + ',' + '171, 78, 82');
Diese 3 Werte möchte ich dann als float3 übergeben. gruss |
AW: RGB to Float3
Mit Prozentrechnung ;)
255/255 (= 100%) = 1.0 |
AW: RGB to Float3
Zitat:
Versteh das jetzt nicht! :oops: gruss |
AW: RGB to Float3
RGB(171,78,82) => Float3( 171/255, 78/255, 82/255 )
|
AW: RGB to Float3
Zitat:
Goggle hat mir da keine Ergebnisse geliefert. Vielleicht war meine Frage etwas unzulänglich. Danke! gruss |
AW: RGB to Float3
axo :) aber das wäre doch lediglich ein record mit ein paar class operatoren.
Direkt gesehen habe ich das noch nicht, sollte aber fix gebaut sein ... |
AW: RGB to Float3
Irgendwie will der kram wieder nicht.
Double sollte eigentlich einen wert 0.111111 liefern können fr := StrToInt(tmpStr[1]) / 255; fr := 0; Scheint so das ich heute was an der Klatsche habe ;) List.Add('Raw umber' + ',' + '146, 102, 68'); sollte dem wert float3(1.30, 1.02, 0.68) entsprechen da komme ich aber mit Extended(Double) nicht dran. Mit meinem Rechner 146/255 := 0.5725490196 Komme nicht auf den wert 1.30 EDIT: Hmmm Denke das geht nicht so einfach
Code:
Da spielen andere Faktoren noch eine rolle.
float4 SepiaPass( float4 colorInput, float2 tex )
{ float4 sepia = colorInput; // Calculating amounts of input, grey and sepia colors to blend and combine float grey = dot(sepia.rgb, float4(0.3, 0.59, 0.11, 0)); sepia.rgb = float4(sepia.rgb * ColorTone , 1); float4 grey2 = grey * (GreyPower); float4 color2 = colorInput / (GreyPower + 1); float4 blend2 = grey2 + color2; sepia.rgb = lerp(blend2, sepia.rgb, SepiaPower); // returning the final color return sepia; } Hardcoden ist schlecht möchte ich eigentlich nicht so gerne. gruss |
AW: RGB to Float3
Ist ja irgendwie auch logisch, denn bei der Berechnung
Code:
gilt
y = x / 255
Code:
Somit passt irgendwas mit der Berechnung nicht und auch die Annahme
x < 255 => y < 1
x = 255 => y = 1 x > 255 => y > 1
Code:
muss somit falsch sein
RGB(255,255,255) = Float3(1.0,1.0,1.0)
bzw. die implizierte Herleitung, dass
Code:
RGB(0,0,0) = Float3(0.0,0.0,0.0)
|
AW: RGB to Float3
Zitat:
Da wird zunächst der Helligkeitswert der Farbe bestimmt.
Delphi-Quellcode:
Das musst du aber hardcoden, denn dass entspricht den (von unseren Augen) wahrgenommenen Helligkeitswerten der Farben.
Rot 30%
Grün 59% Blau 11% |
AW: RGB to Float3
Zitat:
verwendeten Farben (Die bekannt sind) Wiki(Shades of brown) direkt in meinem Array ablege. Und das wollte ich vermeiden ;) über die korrekte berechnung. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz