ПАРНЫ у меня простейшая пирамидка на экране: ({ DirectX::XMFLOAT3(0.f,

0.f,-0.1f), DirectX::XMFLOAT4(Colors::Black)}) вот так задаю например. И цвет в шейдере определяется вот так vout.Color = vin.Color; НО там цвет меняется от вершины к вершине, как минимально изменить код чтобы каждая грань фигуры была своего цвета?

14 ответов

12 просмотров

Директ не трогал, другие вот заняты DirectX::XMFLOAT4(Colors::Black)} — видно, что задает для всех вершин На примере огл вершинный #version 450 //output variable to the fragment shader layout (location = 0) out vec3 outColor; void main() { //const array of positions for the triangle const vec3 positions[3] = vec3[3]( vec3(1.f,1.f, 0.0f), vec3(-1.f,1.f, 0.0f), vec3(0.f,-1.f, 0.0f) ); //const array of colors for the triangle const vec3 colors[3] = vec3[3]( vec3(1.0f, 0.0f, 0.0f), //red vec3(0.0f, 1.0f, 0.0f), //green vec3(00.f, 0.0f, 1.0f) //blue ); //output the position of each vertex gl_Position = vec4(positions[gl_VertexIndex], 1.0f); outColor = colors[gl_VertexIndex]; } фрагментарный #version 450 //shader input layout (location = 0) in vec3 inColor; //output write layout (location = 0) out vec4 outFragColor; void main() { //return color outFragColor = vec4(inColor,1.0f); }

Ideal-Consumer Автор вопроса
Дмитро Цимбалюк
Директ не трогал, другие вот заняты DirectX::XMFLO...

не, не для всех- там просто структура вертоксов такая у меня: { { DirectX::XMFLOAT3( 0.f, 0.3f,0.f), DirectX::XMFLOAT4(Colors::LightCoral)}, { DirectX::XMFLOAT3(-0.1f,0.f, 0.1f), DirectX::XMFLOAT4(Colors::Bisque)}, { DirectX::XMFLOAT3( 0.1f,0.1f, 0.1f), DirectX::XMFLOAT4(Colors::Azure)}, { DirectX::XMFLOAT3(0.f, 0.f,-0.1f), DirectX::XMFLOAT4(Colors::Black)} } std::uint16_t indicies[] = { 0,2,1, 0,3,1, 0,3,2, 1,2,3 };0

Ideal Consumer
screenshot да вроде рисуются

Так вроде рисуется правильно

Ideal-Consumer Автор вопроса

мне хотелось бы минимально поменять код что бы цвет стороны был моно а не перетекал

Ideal Consumer
мне хотелось бы минимально поменять код что бы цве...

Это как минимум нужно поднастроить фрагментарный шейдер, но тут уже мало что смогу сказать, я такое не пробовал даже в огл

Ideal Consumer
мне хотелось бы минимально поменять код что бы цве...

Простейший вариант - на каждую сторону по 3 уникальные вершины

Ideal Consumer
мне хотелось бы минимально поменять код что бы цве...

это лучше меш изменить, чтобы на каждую сторону была своя тройка вершин, тогда будет работать с интерполяцией, а отключать её я не рекомендую, чтобы можно было одновременно использовать в одном меше разные режимы

Ideal-Consumer Автор вопроса
Ideal-Consumer Автор вопроса
disba1ancer
это лучше меш изменить, чтобы на каждую сторону бы...

получилось, но меня смущает увеличение с 4 до 16 вершин ради такой манипуляции с цветом

Ideal-Consumer Автор вопроса

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта