Я написал шейдер треугольника с функцией края и попытался использовать вес для его раскрашивания, но по какой-то причине цвета разделились на 4 отдельных треугольника, каждый со своей уменьшенной версией шейдера. функция рисования представляет собой всего лишь две строки кода для цвета и положения и не должна вызывать эту ошибку.
[img]https://i.sstatic. net/rze68KkZ.png[/img]
int edgeFunction(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3){
return (x2-x1)*(y3-y1)-(y2-y1)*(x3-x1);
}
std::vector RGBtri(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3){
std::vector tri; //fragment is a struct with xyrgba
int minX = std::min(x1, std::min(x2,x3));
int maxX = std::max(x1, std::max(x2,x3));
int minY = std::min(y1, std::min(y2,y3));
int maxY = std::max(y1, std::max(y2,y3));
int p = edgeFunction(x1,y2,x2,y2,x3,y3);
for(uint16_t y = minY;y
Моя цель — разместить красный, зеленый и синий в вершинах основного треугольника, а не разделить его
Подробнее здесь: [url]https://stackoverflow.com/questions/78683227/why-is-this-triangle-shader-that-i-wrote-splitting-into-four[/url]
Я написал шейдер треугольника с функцией края и попытался использовать вес для его раскрашивания, но по какой-то причине цвета разделились на 4 отдельных треугольника, каждый со своей уменьшенной версией шейдера. функция рисования представляет собой всего лишь две строки кода для цвета и положения и не должна вызывать эту ошибку. [img]https://i.sstatic. net/rze68KkZ.png[/img]
std::vector RGBtri(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3){ std::vector tri; //fragment is a struct with xyrgba
int minX = std::min(x1, std::min(x2,x3)); int maxX = std::max(x1, std::max(x2,x3)); int minY = std::min(y1, std::min(y2,y3)); int maxY = std::max(y1, std::max(y2,y3));
int p = edgeFunction(x1,y2,x2,y2,x3,y3);
for(uint16_t y = minY;y Моя цель — разместить красный, зеленый и синий в вершинах основного треугольника, а не разделить его