Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2016-10-22, 20:31
  #13
Medlem
Kod:
class Label
{
public:
	Label();
	~Label();

	inline void SetText(const std::string & aString);
	inline void SetColor(Vector4f aColor);
	inline Vector4f GetColor() const;
	inline std::string GetText() const;

private:
	std::string myText;
	Vector4f myColor;
};¨

void Label::SetText(const std::string & aString)
{
      myString = aString;
}
void Label::SetColor(Vector4f aColor)
{
     myColor = aColor;
}
std::string Label::GetText() const
{
     return myText;
}
Vector4f Label::GetColor() const
{
     return myColor;
}
Så hade jag nog skrivit det.
__________________
Senast redigerad av Oea 2016-10-22 kl. 20:34.
Citera
2016-10-22, 21:20
  #14
Medlem
enowens avatar
Citat:
Ursprungligen postat av Oea
Kod:
class Label
{
public:
	Label();
	~Label();

	inline void SetText(const std::string & aString);
	inline void SetColor(Vector4f aColor);
	inline Vector4f GetColor() const;
	inline std::string GetText() const;

private:
	std::string myText;
	Vector4f myColor;
};¨

void Label::SetText(const std::string & aString)
{
      myString = aString;
}
void Label::SetColor(Vector4f aColor)
{
     myColor = aColor;
}
std::string Label::GetText() const
{
     return myText;
}
Vector4f Label::GetColor() const
{
     return myColor;
}
Så hade jag nog skrivit det.

om du ändå ska svara i en gammal tråd, returnera en referens iaf, inte en kopia
Citera
2016-10-22, 22:56
  #15
Medlem
Citat:
Ursprungligen postat av enowen
om du ändå ska svara i en gammal tråd, returnera en referens iaf, inte en kopia

Missade det! Tack
Citera
2016-10-23, 06:12
  #16
Medlem
Citat:
Ursprungligen postat av Arabies
Personligen hade jag nog använt float för RGB. Ett omfång från 0..1 kan mappas till vilket omfång som helst.

Riktigt men många implementationer av RGB-färger har valt 8, 9 eller 10 bitar var för red green blue, vilket är det normala. Dessa färgvärden uppför sig dock inte riktigt som ints, dvs uppräkningsbara numeraler, är värdet för tex red 0xFFFF (8 bitars single color space, färgdjup om totalt 3 x 8 = 24 bitar ) och man gör en ++ operation på denna så får man 0x10000 vilket trunkerat vid wraparound blir 0x0000, därför har man i vissa kodsekvenser gjort så att red inte kan bli högre än 0xFFFF.

Dvs oavsett om hur många ++ som görs så blir värdet inte högre än 0xFFFF

Internt kan man säga att en RGB-punkt upptar samma som en 32bits unsigned int och kan faktiskt hanteras som en sådan.

Intressant nog finns det ju mycket kvar att uppfinna vad gäller verklighetstrogna skärmar. Om man visar bilder av tex kromade eller metalliska ytor så är de svårare att återge så som de ser ut i verkligheten, Tex en metallic-flake-färg mm, fjärilars gnistrande vingar mm, matta resp blanka ytor osv. Här finns möjlighet i att utveckla detta tekniskt, förmodligen måste man ändra designen på pixeln, ifrån grunden.

Med en 64 bit RGB har man större möjlighter att antingen lägga på "virtuella skikt" eller om man använder 21 bitar för varje färg (21 x 3 = 63 bits) vilket kan vara värdefullt i tex astronomin där man behöver större färgdjup.

Ögat kan inte uppfatta alltför små skillnader, men kan vara värdefullt ändå - ingen har ju testat ännu.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback