exponenta event banner

Различия между цветовыми картами и Truecolor

Многие графические объекты, такие как поверхности, фрагменты и изображения, поддерживают два различных метода задания цвета: цветовые карты (которые используют индексированный цвет) и трюкколор. Каждый метод включает в себя различный рабочий процесс и оказывает различное влияние на визуальную презентацию.

Различия в потоке операций

Карта цветов - это массив m-на-3, в котором каждая строка задает триплет RGB. Для использования карты цветов в графическом представлении каждому местоположению на графике назначается индекс. Каждый индекс обращается к строке в карте цветов для отображения цвета в указанном месте на графике. Напротив, использование truecolor включает в себя указание триплета RGB в каждом месте на графике.

Вот несколько моментов, которые следует учитывать при принятии решения о том, какой метод использовать:

  • Truecolor более прямой. Если требуется присвоить определенные значения красного, зеленого и синего цветов определенным местоположениям на графике, обычно это проще сделать с помощью цвета.

  • Внесение изменений в область цветовой палитры проще сделать в карте цветов. Например, если нужно скрасить переход от синего к зеленому в градиенте, проще редактировать эти строки в карте цветов, чем редактировать цвета в отдельных местах на графике.

  • Формат данных может быть более подходящим для одного из рабочих процессов. Например, многие сжатые GIF-изображения хранятся с использованием индексированного цвета.

Оба метода раскраски используют цветовой массив C для указания информации о цвете. Форма C зависит от типа графического объекта и выбранного метода раскраски. В этой таблице обобщаются различия.

Тип графического объектаСвойство, содержащее массив цветов CФорма C для индексированного цветаФорма C для Truecolor
SurfaceCDataC - массив m-by-n, размер которого совпадает с размером массива z-координат. Значение при C(i,j) задает индекс карты цветов для Z(i,j).C является массивом m-by-n-by-3, где C(:,:,i) того же размера, что и массив координат Z.

C(i,j,1) задает красный компонент для Z(i,j).

C(i,j,2) задает зеленый компонент для Z(i,j).

C(i,j,3) задает синий компонент для Z(i,j).
ImageCDataC является массивом m-by-n для образа m-by-n. Значение при C(i,j) задает индекс карты цветов для пиксела (i,j).C является массивом m-by-n-by-3 для образа m-by-n.

C(i,j,1) задает красный компонент для пиксела (i,j).

C(i,j,2) задает зеленый компонент для пиксела (i,j).

C(i,j,3) задает синий компонент для пиксела (i,j).
Patch (x, y, z)CDataЧтобы раскрасить грани сегмента, C является массивом 1 на m для m граней сегментов. C(i) задает индекс карты цветов для грани i.

Чтобы раскрасить вершины сегментов, C - массив m-by-n, где m - число вершин на грань, а n - число граней. C(i,j) задает индекс карты цветов для вершины i лица j.
Чтобы раскрасить грани сегмента, C является массивом m-на-3 для m граней сегментов. C(i,:) задает значения красного, зеленого и синего цвета для грани i.

Чтобы раскрасить вершины сегментов, C является массивом n-by-3, где n - общее число вершин. C(i,:) задает значения красного, зеленого и синего цвета для вершины i.
Patch (данные грани-вершины)FaceVertexCDataЧтобы раскрасить грани сегмента, C является массивом 1 на m для m граней сегментов. C(i) задает индекс карты цветов для грани i.

Чтобы раскрасить вершины сегментов, C - массив 1 на n, где n - общее число вершин. C(i) задает индекс карты цветов для вершины i.
Чтобы раскрасить грани сегмента, C является массивом m-на-3 для m граней сегментов. C(i,:) задает значения красного, зеленого и синего цвета для грани i.

Чтобы раскрасить вершины сегментов, C является массивом n-by-3, где n - общее число вершин. C(i,:) задает значения красного, зеленого и синего цвета для вершины i.

Различия в визуальной презентации

Карты цветов предлагают палитру из m цветов, где m - длина карты цветов. Напротив, трюкколор предлагает палитру 256 × 256 × 256 ≈ 1,68 млн цветов.

При выборе размера цветовой палитры необходимо учитывать следующие факторы:

  • Более мелкие палитры цветов являются наиболее экономичным способом заливки больших областей сплошным цветом. Они также полезны при визуализации контуров поверхностей.

  • Более крупные палитры цветов лучше подходят для отображения тонких переходов и плавных градиентов цвета.

Интерполяция вершинных цветов по грани сегмента - это одна ситуация, в которой различия между индексированным цветом и трюкколором более заметны. Следующие два исправления иллюстрируют крайний случай. Патч слева использует небольшую цветовую карту, в то время как патч справа использует триеколор.

Если вас беспокоит ограниченная палитра карты цветов, можно добавить в нее дополнительные цвета. Изменение цветовой схемы с помощью карты цветов показывает, как использовать карту цветов с определенным количеством цветов.

Связанные темы