- ขอบรูปเกือกม้าของ ไดอะแกรมโครมาติกซิตี xy ของ CIE 1931 ไม่ได้มาจากสูตรที่กำหนดขึ้นเอง แต่เกิดจาก ฟังก์ชันการจับคู่สี ซึ่งวัดวิธีที่มนุษย์รับรู้แสงสีแดง·เขียว·น้ำเงินในเชิงสัมพัทธ์
- ข้อมูล CIE RGB เป็นผลการทดลองที่ปรับแหล่งกำเนิดแสง 700nm, 546nm, 435nm ให้ตรงกับ สีสเปกตรัม และค่าติดลบของบางความยาวคลื่นแสดงให้เห็นว่ามีสีที่ไม่สามารถสร้างซ้ำได้ด้วย RGB บริสุทธิ์เท่านั้น
- ปริภูมิสี XYZ เป็นมาตรฐานที่ทำให้ RGB ผ่าน การแปลงเชิงเส้น เพื่อจัดการค่าทั้งหมดให้เป็นบวกได้ง่ายขึ้น และฉายค่ามิติ 3 มิติลงเป็นพิกัดโครมาติกซิตี 2 มิติด้วย
x = X/(X+Y+Z), y = Y/(X+Y+Z)
- สีภายในไดอะแกรมสามารถประมาณได้ด้วยวิธีสร้าง รูปแบบเส้นสเปกตรัม หลายแบบ แล้วนำไปคูณกับฟังก์ชันการจับคู่สีและอินทิเกรต ก่อนปักลงบนพิกัด xy แทนที่จะคำนวณจาก
x, y โดยตรง
- หน้าจอจริงถูกจำกัดอยู่กับปริภูมิสีของจอแสดงผลอย่าง sRGB หรือ display-p3 ดังนั้นสีจำนวนมากใกล้ขอบเขตจึงไม่ถูกแสดงอย่างแม่นยำ และเกิด clipping หรือการอิ่มตัวของแชนเนล
จุดตั้งต้นของไดอะแกรมรูปเกือกม้า
- เมื่อทำความเข้าใจปริภูมิสี CIE 1931 XYZ จะพบ ไดอะแกรมโครมาติกซิตี ซ้ำ ๆ ซึ่งเป็นแผนภาพที่แสดงคุณภาพของสีโดยแยกออกจากความสว่าง
- ขอบของไดอะแกรมเชื่อมโยงกับ สีสเปกตรัม ของความยาวคลื่นเฉพาะ แต่รูปทรงโดยรวมและสีภายในไม่สามารถอธิบายได้ด้วยสูตรง่าย ๆ อย่าง
x = func(y)
- รูปทรงหลักมาจากวิธีที่มนุษย์รับรู้สีแดง·เขียว·น้ำเงินเมื่อเทียบกัน และสีภายในสามารถเรนเดอร์เป็นภาพ 2D ได้ด้วยคณิตศาสตร์การผสมสีและการสุ่มตัวอย่างจุด
ฟังก์ชันการจับคู่สีและ CIE RGB
- ฟังก์ชันการจับคู่สี แสดงว่าต้องปรับความเข้มของแหล่งกำเนิดแสงสีแดง·เขียว·น้ำเงินเท่าใด เพื่อทำให้สีเป้าหมายที่ความยาวคลื่นเฉพาะดูเหมือนกันด้วยสายตา
- ฟังก์ชันการจับคู่สี CIE 1931 RGB อ้างอิงแหล่งกำเนิดแสงสีแดง·เขียว·น้ำเงินที่ 700nm, 546nm, 435nm ตามลำดับ
- การทดลองทำโดยวางแหล่งกำเนิดแสงสีเป้าหมายไว้ด้านหนึ่ง และให้มนุษย์ปรับแหล่งกำเนิดแสง RGB อีกด้านหนึ่งด้วยตนเองให้ตรงกับสีเป้าหมาย
- ในข้อมูลนี้มีค่าประเภท สีแดงติดลบ ปรากฏขึ้น
- แหล่งกำเนิดแสงติดลบไม่สามารถสร้างได้ทางกายภาพ
- หมายความว่าสีสเปกตรัมบางสีไม่สามารถสร้างซ้ำได้ด้วยแหล่งกำเนิดแสง RGB บริสุทธิ์เท่านั้น
- แต่เมื่อผ่านการแปลงแล้ว ยังสามารถใช้ประโยชน์ในการคำนวณปริภูมิสีได้
ปริภูมิสี XYZ และพิกัดโครมาติกซิตี xy
- ปริภูมิสี XYZ เป็นรูปแบบที่นำปริภูมิสี RGB มา แปลงเชิงเส้น ด้วยเมทริกซ์ และใกล้เคียงกับการจัดเรียงข้อมูลเดียวกันใหม่ในระบบพิกัดอื่นที่คำนวณได้ง่ายกว่า
- หากใช้เมทริกซ์การแปลง RGB จาก Wikipedia จะสามารถเปรียบเทียบข้อมูลฟังก์ชันการจับคู่สี XYZ กับกราฟ RGB ได้
matrix = [
2.364613, -0.89654, -0.468073,
-0.515166, 1.426408, 0.088758,
0.005203, -0.014408, 1.009204
]
[R, G, B] = matrix * [X, Y, Z]
- XYZ สามารถใช้เป็นปริภูมิมาตรฐานที่ อธิบายสีทั้งหมด ได้ รวมถึงสีที่อุปกรณ์แสดงผลไม่สามารถสร้างออกมาโดยตรง
- อุปกรณ์แต่ละชนิดต้องตีความค่านี้ไปยังปริภูมิสีที่ตนเองแสดงได้ทางกายภาพ
- เมื่อ color gamut ของอุปกรณ์กว้างขึ้น ก็สามารถแสดงสีได้มากขึ้นจากข้อมูลสีเดียวกัน
- พิกัดโครมาติกซิตี xy คำนวณโดยหารค่า XYZ ด้วยผลรวมทั้งหมด
const x = X / (X + Y + Z)
const y = Y / (X + Y + Z)
const z = Z / (X + Y + Z) = 1 - x - y
z สามารถอนุมานจาก x และ y ได้ จึงมักถูกละไว้ในไดอะแกรมโครมาติกซิตี xy
- หากต้องการย้อนกลับจาก
xy ไปเป็น XYZ ต้องมีค่า Y และการแสดงผลที่รวมค่านี้ไว้คือ ปริภูมิสี xyY
ทำไมจึงดูเหมือนเกือกม้า
- เมื่อนำข้อมูลฟังก์ชันการจับคู่สี RGB มาฉายเป็น xy รูปร่างขอบของไดอะแกรมโครมาติกซิตีที่คุ้นเคยจะเริ่มปรากฏ
- ข้อมูล RGB มีบริเวณแกน x ที่เป็นค่าลบเนื่องจากสีที่เป็นไปไม่ได้ และเมื่อแปลงเป็น XYZ จะเข้าใกล้รูปทรงเกือกม้าที่คุ้นเคยมากขึ้น
- แม้เรนเดอร์ตารางข้อมูลฟังก์ชันการจับคู่สี XYZ เป็น xy โดยตรง ก็จะได้รูปทรงเดียวกันที่สอดคล้องกัน
- รูปทรงถูกอนุมานโดยตรงจากเส้นโค้งของฟังก์ชันการจับคู่สี XYZ
- สำหรับแต่ละความยาวคลื่น คำนวณสัดส่วนที่
X, Y, Z มีต่อผลรวมทั้งหมด
- เมื่อปักจุดตามสัดส่วนนี้ จะเกิดขอบเขตโครมาติกซิตี
- หากนำขั้นตอนเดียวกันไปใช้กับฟังก์ชันการจับคู่สีที่สร้างขึ้นเอง จะได้รูปทรงที่แตกต่างไปโดยสิ้นเชิง ดังนั้นรูปเกือกม้าจริงจึงเป็นผลจาก ฟังก์ชันที่อนุมานจากการทดลองการมองเห็นของมนุษย์
วิธีประมาณการเติมสีภายใน
- ด้วยพิกัด
x, y เพียงอย่างเดียว ไม่สามารถรู้ได้ทันทีว่าจุดนั้นเป็นสีที่ถูกต้องหรือไม่ หรือควรประมาณเป็นสีใด
- ในทางกลับกัน สามารถใช้แนวทางสร้างค่า XYZ หรือสเปกตรัมขึ้นมา แล้วแปลงเป็นพิกัด xy เพื่อปักลงบนแผนภาพ
- แกนหลักคือการสร้าง รูปแบบเส้นสเปกตรัม
- สร้างเส้นที่แสดงว่าแต่ละความยาวคลื่นมีส่วนต่อสีมากเพียงใดบนแกนความยาวคลื่นทั้งหมด
- นำเส้นนั้นคูณกับฟังก์ชันการจับคู่สี XYZ แล้วอินทิเกรตเพื่อให้ได้ค่า XYZ สุดท้าย
- ใช้วิธีเดียวกันคูณกับฟังก์ชันการจับคู่สี RGB แล้วอินทิเกรตเพื่อให้ได้ค่า RGB
- แปลงค่า XYZ ที่ได้เป็น xy แล้วปักลงบนไดอะแกรมโครมาติกซิตี
- หากเปลี่ยน offset และความกว้างจากเส้นไซน์สองเส้น จะสร้างเส้นสเปกตรัมที่ต่างกัน และผลลัพธ์คือสีและพิกัดที่ต่างกันปรากฏบนแผนภาพ
- เดโมอัตโนมัติจะเปลี่ยน offset และความกว้างเพื่อกวาดสำรวจพื้นที่ให้กว้างขึ้น แต่ก็ยังไม่สามารถเติมปริภูมิสีทั้งหมดได้อย่างสมบูรณ์
- มี เดโม CodePen ให้ทดลองได้โดยตรง
การแสดงผลบนหน้าจอและข้อจำกัดของปริภูมิสี
- หากต้องการแสดงค่า XYZ ที่คำนวณได้บนหน้าจอ ต้องแปลงเป็นปริภูมิสีสำหรับเรนเดอร์จริง เช่น sRGB
rgb() ของเบราว์เซอร์ถือว่าเป็น sRGB ดังนั้นเมื่อแปลง XYZ เป็น RGB ต้องคำนึงถึง การแก้แกมมา ด้วย
- display-p3 เป็นปริภูมิสีที่มี color gamut กว้างกว่า sRGB และเบราว์เซอร์กับจอแสดงผลจำนวนมากรองรับ
- ใน CSS สามารถระบุสี display-p3 ได้ในรูป
color(display-p3 r, g, b)
- ปริภูมิสี p3 ของเบราว์เซอร์ก็ใช้การแก้แกมมาแบบเดียวกับ sRGB ดังนั้นต้องรวมสิ่งนี้เข้าไปด้วยเพื่อให้สีเรนเดอร์ได้ถูกต้อง
- บนเบราว์เซอร์และจอแสดงผล wide gamut จะเห็นสีที่เข้มกว่าได้ แต่จากการทดลองนี้เพียงอย่างเดียว ยังยืนยันได้ยากว่า p3 ถูกส่งต่อหรือถูกแปลงเป็น sRGB อย่างไรในภาพหน้าจอหรือการแชร์หน้าจอผ่าน Zoom
เหตุผลที่สีไม่แม่นยำสมบูรณ์
- หากแปลงสีภายในจากค่า XYZ โดยตรงด้วย
XYZ_to_sRGB สีจำนวนมากจะออกนอกช่วง 0~255 และได้ผลลัพธ์ที่อิ่มตัวเกินไป
- วิธีคูณเส้นสเปกตรัมกับฟังก์ชันการจับคู่สี RGB แล้วอินทิเกรต ดูเหมือนเป็นการอินเตอร์โพเลตที่ดีกว่าการดึงสีจาก XYZ โดยตรง
- ถึงอย่างนั้น สีที่สร้างขึ้นจำนวนมากก็ยังเป็น ค่า RGB ที่ไม่ถูกต้อง
- หากไม่เรนเดอร์สีที่อยู่นอกช่วง 0~255 ก็จะเหลือเพียงสามเหลี่ยม sRGB ที่คุ้นเคย
- สีที่อยู่นอกสามเหลี่ยมไม่สามารถแสดงได้อย่างแม่นยำ แต่ในสภาวะที่มีเพียง 1~2 แชนเนล RGB อิ่มตัว การเปลี่ยนแปลงของแชนเนลที่เหลือยังทำให้เห็นความแตกต่างของสีได้ในระดับหนึ่ง
แหล่งข้อมูลที่เกี่ยวข้อง
1 ความคิดเห็น
ความเห็นบน Hacker News
วิธีที่พบบ่อยที่สุดในการวาด chromaticity ลงบนกริดพิกัดฉากนั้นทำให้เข้าใจผิดได้ไม่น้อย แผนภาพ chromaticity ใช้พิกัดแบบจุดศูนย์ถ่วง และผมมองว่ารูปร่างบิดเบี้ยวแปลก ๆ ของแผนภาพ chromaticity แบบ XYZ ทั่วไปนั้นเป็นความบิดเบือนที่เกิดจากวิธีวาด มากกว่าจะเป็นคุณสมบัติจริงของข้อมูล
การมองแผนภาพ chromaticity เป็น หน้าตัดระนาบ 2 มิติ ที่ตัดผ่านเวกเตอร์หน่วยมาตรฐานทั้งสามในปริภูมิสี 3 มิติดูเป็นธรรมชาติกว่า และภาพสามเหลี่ยมด้านเท่าอย่าง [1] ก็แสดงประเด็นนี้ได้ดี อีกทั้งยังทำให้เห็นชัดขึ้นด้วยว่า gamut ทั้งหมดของปริภูมิ XYZ ไม่ได้มีรูปร่างบิดเบี้ยวโดยพลการ แต่ถูกเลือกอย่างตั้งใจให้เติม octant บวกได้ค่อนข้างดีภายใต้ข้อจำกัดของการมองเห็นมนุษย์
[1]: https://physics.stackexchange.com/questions/777501/why-is-th...
แกน X, Y, Z เองก็มีความเป็นอำเภอใจอยู่ระดับหนึ่ง จึงพูดยากว่าการวาด xy ไว้ในสามเหลี่ยมด้านเท่าถูกต้องโดยเนื้อแท้กว่าการวาดไว้ในสามเหลี่ยมมุมฉากหน้าจั่ว ถ้าใช้พิกัดที่ใกล้กับการตอบสนองของเซลล์รูปกรวย อาจทำให้แนวคิดชัดเจนขึ้น แต่ภาพ 2 มิติแบบนี้ท้ายที่สุดก็อาจทำให้คนที่ไม่เข้าใจลึกซึ้งว่าการมองเห็นทำงานอย่างไร และแผนภาพหมายถึงอะไร เข้าใจผิดได้
https://www.w6rz.net/chromacity.mp4
แผนภาพ chromaticity เวอร์ชันนั้นทำให้สีที่จอแสดงผลขาดหายไปดูเหมือนสีเขียวของเลเซอร์พอยน์เตอร์หลายชนิด จริง ๆ แล้วยังมีโทนแดงและน้ำเงินจำนวนมากที่ขาดหายไป เพราะ แม่สีแดง·น้ำเงิน ที่อิ่มตัวมากนั้นมืดเกินไปต่อพลังงานจนใช้งานไม่ได้
อ้างอิง: https://nanosys.com/blog-archive/2012/08/14/color-space-conf...
ตอนทำภาพสามมิติแดง-ไซแอน ผมได้เรียนรู้เรื่อง color management มากเกินกว่าที่อยากรู้ เพราะผมขอสีแดง sRGB แต่บนจอ wide-gamut กลับได้ค่าประมาณ (180,16,16) ทำให้เกิดการรั่วข้ามช่องสีมาก ตอนนี้กำลังทำผ้าพิมพ์ลายสั่งทำกับเพื่อนที่เป็นช่างเย็บผ้า แต่สีเหลืองในลายดอกไม้ดันกลายเป็นสีส้มระหว่างกระบวนการ เลยพยายาม debug และปรับเทียบให้เสร็จก่อนสั่งผลิต ยังเรียนรู้เรื่อง color management มากเกินไปอยู่ดี
แต่การรับรู้ทางสายตาไปได้ไกลกว่าสิ่งที่เซลล์รูปกรวยในตาสามารถมองเห็นทางกายภาพมาก ข้างหลังยังมีสมองทั้งก้อนที่พยายามตีความปรากฏการณ์ของเส้นประสาทตาอยู่ ถ้าพูดถึงการกระตุ้นสมองที่น่าสนใจ ลองค้นหา สีคิเมรา ซึ่งเป็นสีที่เซลล์รูปกรวยไม่สามารถตรวจจับได้ทางกายภาพแต่เรามองเห็นได้ เช่น stygian blue, self-luminous red, hyperbolic orange
†: https://www.perplexity.ai/search/please-provide-chimerical-c...
W: https://en.wikipedia.org/wiki/Impossible_color
ตัวอย่าง: https://ctnbee.com/en/upload
มีการสำรวจอีกชิ้นที่น่าสนใจเกี่ยวกับปริภูมิสี: https://ericportis.com/posts/2024/okay-color-spaces/
สำหรับคนที่คิดว่าสีม่วง/มาจेंตาไม่ใช่สี “จริง” ผมอยากบอกว่า เพราะที่ความยาวคลื่นสั้น ค่า X สีแดงลดลงช้ากว่า Z สีน้ำเงิน เราจึงสามารถได้สีม่วง/มาจेंตาอิ่มตัวแบบความยาวคลื่นเดียวกำลังสูงที่ต่ำกว่า 400nm ได้ มันไม่ได้แสดงได้ดีในแผนภูมิ chromaticity มาตรฐาน และก็ไม่มีประสิทธิภาพสำหรับจอภาพ ทั้งยังอันตรายหากมองนาน ๆ เช่นเดียวกับสีน้ำเงินด้วย ถ้าเห็นเลเซอร์ม่วง/มาจेंตาแบบความยาวคลื่นเดียว ควรหันหน้าหนีหรือหลับตา
ยอดเยี่ยม ทำให้นึกไอเดียเรื่องสี การรับรู้ และ gamut ขึ้นมา
พูดง่าย ๆ ลองจินตนาการว่าการผสมความยาวคลื่นของแสงบางแบบทำให้รับรู้กลิ่นชีสบ่ม และอีกแบบทำให้คิดว่ามีหมีอยู่ข้างหลัง ถ้าอย่างนั้นแผนภาพก็ควรใส่รูปชีสกับหมีเล็ก ๆ ไว้ตรงจุดที่เกิดการรับรู้นั้น ไม่ใช่แค่พิกเซลสี
ผมคิดว่าจริง ๆ แล้ว มาจेंตา ก็เป็นแบบนี้ เป็นสีที่ไม่มีอยู่ในสเปกตรัม และให้ความรู้สึกหรือสัมผัสเหมือนสมองทำให้รับรู้เป็นเพียงสีอีกสีหนึ่ง เพื่อไม่ให้ถูกถาโถมมากเกินไป ผมมองว่านี่ใกล้เคียงกับการอธิบายปรากฏการณ์จริงให้คนที่มี synesthesia ในระดับต่าง ๆ หรือถ้าจะเล่นคำ ก็คือคนที่อยู่บนสเปกตรัมของ synesthesia
การเริ่มจาก XYZ ก็อาจไม่เลว แต่ตอนนี้มีปริภูมิสีที่ดีกว่ามากและสอดคล้องกับการมองเห็นของเรามากกว่า ตัวอย่างเด่น ๆ คือ CIE 1976 L',u',v' และที่ใหม่กว่านั้นคือ ICtCp จากงานวิจัยของ Dolby
ในทำนองเดียวกัน หากวาดสีที่สอดคล้องกับความยาวคลื่นบริสุทธิ์ แล้วห่อด้วย convex hull ก็จะได้ปริภูมิสีทั้งหมดที่เป็นไปได้ทางกายภาพ คุณสมบัตินี้สร้างซ้ำให้ถูกต้องในปริภูมิสีอื่นได้ยาก อย่างมากก็ทำได้แค่การแปลงเชิงเส้นเท่านั้น XYZ เองก็เป็นการแปลงแบบนั้นอยู่แล้ว และมีคุณสมบัติแทบครบตามที่ควรคาดหวังจากการเลือกฐาน
https://giannirosato.com/blog/post/jpegli-xyb/
ผมสงสัยว่ามีปริภูมิสีแบบ “เพื่อการศึกษา” ที่เหมาะกับการสอนและการเรียนรู้หรือไม่ หมายถึงปริภูมิสีที่ให้ความสำคัญกับความถูกต้องมากกว่าคณิตศาสตร์ที่เรียบง่าย และคุณสมบัติที่เด่นชัดเป็นลักษณะของ การรับรู้ของมนุษย์ จริง ๆ ไม่ใช่ “artifact ของโมเดล”
อยากได้แบบที่ครอบคลุม gamut ทั้งหมด ทำงานกับ spectral locus ได้ดี และให้ hue กับการผสมสีเป็นเชิงเส้นในระดับหนึ่ง คล้าย ๆ พื้นที่ที่ Munsell เคยครองอยู่ แต่รองรับ gamut ทั้งหมดและเป็นแบบศตวรรษที่ 21 ตอนทำโปรเจกต์เสริมว่า “ถ้าเน้นสเปกตรัม จะสอนเรื่องสีได้ดีกว่าไหม?” ผมหาอะไรที่ใกล้เคียงยังไม่เจอ เลยประกอบขึ้นชั่วคราวเอง ใช้ CAM16UCS เป็นตัวเลือกสมัยใหม่สำหรับปริภูมิสีเชิงการรับรู้ ใช้ Jzazbz เพื่อคลายความบิดเบี้ยวของ hue เชิงเส้น ทำ sanity check เรื่องความส่องสว่างสัมบูรณ์ และกดหางสีน้ำเงินแปลก ๆ ใกล้ locus ที่ผมเข้าใจว่าเป็นส่วนที่ไม่เชิงการรับรู้ของ CAM ลงไปแบบไม่ค่อยมีหลักการนัก การนำไปใช้ทำด้วย lookup table ถ้ามีงานที่เกี่ยวข้องก็อยากฟัง
Hellwig และ Fairchild เพิ่งทำให้โมเดลเรียบง่ายขึ้นทางคณิตศาสตร์ พร้อมปรับปรุงความแม่นยำของ chroma (http://markfairchild.org/PDFs/PAP45.pdf) โมเดลที่ง่ายกว่านั้นคือ CIELAB ซึ่งให้พารามิเตอร์ L, a, b โดย L คือ lightness, hypot(a,b) คือ chroma และ arctan2(b,a) คือ hue
ตัวเลือกที่ดีกว่าอาจเป็นปริภูมิสี Munsell Munsell แบ่งขอบเขตสีทั้งหมดออกเป็นชิ้นเล็ก ๆ หลายพันชิ้น และระยะห่างระหว่างแต่ละชิ้นคือหนึ่งหน่วยของ “ความแตกต่างที่เพิ่งรับรู้ได้” ซึ่งกำหนดจากการทดสอบผู้ใช้อย่างละเอียด ดังนั้นบริเวณสีเขียวจึงใหญ่กว่าสีเหลืองมาก กระบวนการพัฒนาปริภูมิสีนี้ก็น่าสนใจมากเช่นกัน เขาเป็นจิตรกร แต่ผลงานของเขาปูทางให้กับปริภูมิสีที่ทันสมัยกว่า
“แหล่งกำเนิดแสงสีแดงเชิงลบ” หมายถึงผู้ทดลองหมุน ปุ่มที่เพิ่มแสงสีแดง เข้าไปในสีที่ผู้ถูกทดลองพยายามจับคู่
โดยพื้นฐานแล้วมีสีไม่ทราบค่า C และสี R+G+B บางครั้งจับคู่กันไม่ได้ จึงพยายามให้ C+R = G+B ในกรณีนี้เราเพิ่ม R ไปอีกฝั่งของสมการ จึงเกิด R “เชิงลบ” เรื่องแบบเดียวกันเกิดกับสีเขียวและสีน้ำเงินด้วย แต่ในระดับที่น้อยกว่า
โดยรวมถูกต้อง แต่ในช่วงท้ายที่ผู้เขียนสร้างสเปกตรัมที่มีพีคสองจุดแล้วฉายลงบนแผนภาพ chromaticity เพื่อเติมพื้นที่ด้านใน locus ผมไม่ค่อยเข้าใจว่าทำไมถึงทำแบบนั้น
ผมคิดว่าวิธีที่ควรทำเป็นแบบนี้ ก่อนอื่นเลือกค่า Y ให้เป็น luminance ของแผนภาพ แล้วสำหรับแต่ละพิกเซลในบริเวณที่ล้อมด้วย spectral locus และเส้นสีม่วง ให้ใช้พิกัด x, y ค่าสามค่านี้ระบุสีในปริภูมิสี CIE xyY และการแปลงจาก xyY เป็น XYZ ก็ง่าย ๆ คือ X = Y / y * x, Y = Y, Z = Y / y * (1 - x - y) จากนั้นแมปค่า XYZ ไปยังปริภูมิสีของภาพเอาต์พุต เช่น sRGB ถ้าค่า XYZ ใดทำให้ sRGB อยู่นอกช่วง [0,1] ก็แปลว่าอยู่นอก gamut ของ sRGB ให้คลิปไปยังค่า gamut ที่ถูกต้องที่ใกล้ที่สุด
ปัญหาคือ “แต่ละพิกเซลในบริเวณนั้น” หลังจากทำแบบนั้นแล้วก็อาจตัดเอาต์พุตให้เป็นรูปทรงนั้นได้ แต่ถ้าทำอย่างนั้นก็เหมือนกับใช้รูปทรงนั้นเองมาตัดเอาต์พุต จึงไม่ได้ตอบเลยว่าทำไมมันถึงมีรูปทรงแบบนั้น รู้สึกเหมือนเป็นของปลอม อย่างไรก็ตาม ดูเหมือนว่านี่จะเป็นวิธีที่พบบ่อยที่สุด ผมพยายามทำความเข้าใจวิธีที่เข้มงวดกว่านี้ และวิธีสร้างสเปกตรัมเพื่อเติมพื้นที่มีอธิบายไว้ที่นี่: https://clarkvision.com/articles/color-cie-chromaticity-and-...
ฝั่งนั้นให้ความรู้สึกว่าเป็นแนวทางที่เข้มงวดกว่า แต่การคลิปก็คงเป็นวิธีที่ “ดีพอ” ได้เหมือนกัน
มีคำถามสำหรับคนที่เชี่ยวชาญวิทยาศาสตร์สีครับ ผมกำลังอ่านข้อมูลดิบของ Guild https://royalsocietypublishing.org/doi/pdf/10.1098/rsta.1932... อยู่ แต่เข้าใจยากว่า ตัวเลขในตารางที่ 4 หมายถึงอะไร
อยากทราบว่ามีใครเข้าใจทุกคอลัมน์ในนั้นไหม โดยเฉพาะกำลังมองหาค่าสัมประสิทธิ์ที่ยังไม่ได้ normalize จากการทดลองจับคู่สี หรือวิธี denormalize ค่าสัมประสิทธิ์เหล่านั้น ค่าสัมประสิทธิ์ที่ว่าคือ trichromatic coefficients u{a,b,c}_\lambda ในตารางที่ 3 ผมไม่แน่ใจว่าข้อมูลนั้นอยู่ในตารางที่ 4 หรือเปล่า ดังนั้นอาจเป็นคำถามคนละเรื่องกันก็ได้
ผมคิดว่าคำอธิบายนั้นเรียบง่าย สีคือแสง และเป็นสิ่งเชิงเส้นที่ไล่จากอัลตราไวโอเลตไปเป็นสีน้ำเงิน สีเขียว สีเหลือง สีแดง และอินฟราเรด พูดง่าย ๆ คือเป็นเส้นเส้นเดียว
ในความเป็นจริงทางกายภาพไม่มี แสงสีม่วง อยู่ เมื่อดวงตาได้รับแสงสีแดงและสีน้ำเงินพร้อมกัน จิตใจจะสร้างเฉดม่วงและมาเจนตาทั้งหมดที่อยู่ระหว่างสีน้ำเงินกับสีแดงขึ้นมา ดังนั้นหากต้องการรวมมาเจนตาเข้าไป ก็ต้องลากเส้นอีกเส้นหนึ่งระหว่างสีน้ำเงินกับสีแดง กล่าวคือ ต้องดัดเส้นของสีจริงให้โค้ง และนั่นก็คือสิ่งที่เห็นในแผนภาพรงคภาวะ
ดังนั้นจึงเขียนว่า “แสง ‘สีแดง’” ไม่ใช่ “แสงสีแดง” จับคู่สเปกตรัมทางฟิสิกส์เป็นโทนเทาพร้อมแกน nm และพลังงาน ส่วนสเปกตรัมเชิงการรับรู้จับคู่เป็นสีตามมุมสีและความสว่าง ทั้งสองสามารถม้วนเข้าไปในปริภูมิสีเชิงการรับรู้ 3 มิติได้ และยังสามารถอินเทอร์โพเลตสเปกตรัมทางฟิสิกส์จาก nm ไปเป็นฮิวได้ด้วย หรืออาจจัดวางตามปริภูมิการมองเห็นสองสีของสัตว์เลี้ยงลูกด้วยนมที่ไม่ใช่ไพรเมตแบบ 2 มิติ เพื่อเน้นการพึ่งพาระบบประสาทก็ได้ ความเข้าใจผิดเกี่ยวกับสีแพร่หลายมากตั้งแต่อนุบาลไปจนถึงบัณฑิตศึกษา ดังนั้นเพื่อความชัดเจน การระมัดระวังอย่างยิ่งจึงมักช่วยได้
ในทัศนศาสตร์ที่ถูกบอกเป็นนัยว่าเป็น “ความเป็นจริงทางกายภาพ” นั้น ไม่มีสีอยู่เลย จิตใจสร้างสีทั้งหมดขึ้นมา การมอบคุณสมบัติที่เรียกว่าสีซึ่งเป็นอิสระจากผู้มองให้กับแสงเป็นความผิดพลาดเชิงหมวดหมู่ ในวิทยาศาสตร์สี สิ่งที่เรียกว่าความเป็นจริงทางกายภาพในที่นี้ หากพูดให้แม่นยำกว่านั้นเรียกว่าการกระจายกำลังเชิงสเปกตรัมของรังสีแม่เหล็กไฟฟ้าในช่วงที่มองเห็นได้ ตราบใดที่รังสีนั้นกระตุ้นการตอบสนองด้านสีของระบบการมองเห็นของมนุษย์ แสงสีม่วงก็มีอยู่จริงอย่างแน่นอน เพียงแต่ไม่สามารถจำลองด้วยรังสีช่วงความยาวคลื่นแคบช่วงเดียวเท่านั้น
“ขอบสีม่วง” ด้านล่างของแผนภาพรูปเกือกม้า CIE แสดงขอบเขตเชิงการรับรู้เมื่อผสมสิ่งเร้าความยาวคลื่นยาวและสั้น หรือก็คือแม่สีแดง/น้ำเงิน แต่การตั้งสมมติฐานว่าแสงมีสีโดยธรรมชาติเป็นการบรรยายความเป็นจริงที่ยึดมนุษย์เป็นศูนย์กลางอย่างมาก สิ่งมีชีวิตอื่นมีการตอบสนองจำเพาะที่แตกต่างจากมนุษย์อย่างมาก ลองจินตนาการถึงประสาทสัมผัสที่ไวต่อโพลาไรเซชันก็พอ วงล้อสีของศิลปินเป็นวงกลมก็เพราะในจิตใจของศิลปิน สีปรากฏออกมาเช่นนั้นในฐานะคุณสมบัติเชิงประสบการณ์ ฟิสิกส์ของคุณภาพประสบการณ์เกี่ยวข้องกับความซับซ้อนของการตอบสนองภายในสิ่งมีชีวิตมากกว่าสิ่งเร้าภายนอก การพูดถึงสีของแสงเป็นสำนวนตามสามัญสำนึก แต่เป็นการมอบคุณสมบัติแบบมนุษย์ให้กับฟิสิกส์ของสิ่งเร้ามากเกินไป ควรอธิบายให้เรียบง่ายที่สุดเท่าที่เป็นไปได้ แต่อย่าทำให้เรียบง่ายไปกว่านั้น
คำอธิบายที่มอง “สีจริง” เป็นคุณสมบัติของแสง ไม่ใช่การรับรู้ ยิ่งก่อให้เกิดความเข้าใจผิดมากกว่าทำให้ชัดเจน