DrawUserPrimitives будут использовать только несколько цветов

#c# #xna #drawing

#c# #xna #рисование

Вопрос:

Редактировать

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

ОРИГИНАЛ

Я экспериментирую с рисованием в 3D с помощью VertexPositionColor, и у меня получилось практически все, за исключением того, что когда я пытаюсь рисовать, используя определенный цвет, он всегда преобразует его примерно в один из 7 цветов, подобных тем, что показаны здесь:

Цвет (плюс желтый и белый)

Я пытался нарисовать часть чего-либо, используя цвет.Серый (128, 128, 128, 255), но, похоже, это просто не работает, оно просто преобразует его в белый.

Вот как это выглядит и на что это должно быть похоже:

текущий
желаемый

Есть ли какая-либо причина, по которой это происходит, или какой-либо способ это исправить?

Ответ №1:

Кажется, что ваш шейдер просто не использует цвет. Вы используете свой собственный шейдер или стандартный? Попробуйте использовать BasicEffect и вызвать его метод EnableDefaultLighting() при рисовании.

Есть отличная серия статей по программированию на XNA. Там все подробно описано. Я думаю, вы можете найти ответ на свой вопрос.

Если вам нужен более подробный ответ, пожалуйста, добавьте немного кода к вашему вопросу.