2010-05-31 2 views
1

Просто интересно - бросать идеи в мою голову - начать новый проект XNA для 360. Я бы хотел, чтобы это была ретро-старая школа, а также эмулирующие линии сканирования и цветовые палитры и тому подобное.60K + спрайты на 360?

Как часть этой идеи, я бы идеально хотел сделать вручную рисовать каждый пиксель экрана. Итак, в худшем случае мне пришлось бы рисовать около 60 тыс. Спрайтов по разрешению 252х240 (думаю, это правильно). 60K спрайтов на экране одновременно.

Итак, до того, как я попытаюсь это сделать, будет ли XBOX 360 в состоянии идти в ногу с этим? Это много спрайтов, но они не большие спрайты, и необходимые данные текстуры были бы несуществующими. Однако я предполагаю, что этот проект будет реализован, сделает его или сломает, но все, о чем я думал, придумывал 2D-массив и сопоставлял, какое значение цвета нужно будет рисовать в этой точке.

Конечно, сейчас обводнен. Но что вы все предлагаете?

EDIT: каждый спрайт будет представлять собой один пиксель. Например, спрайт на 0,0. Другое - 0,1. и т. д.

+0

Почему бы просто не нарисовать собственные текстуры? – Gabe

+4

Erm ... спрайт с одним пикселем не спрайт, это пиксель – Diadistis

+1

@Diadistis: это не один пиксельный спрайт, это спрайт, который представляет 1 пиксель. Обратите внимание, что он говорит о 252x240, а не о 1920x1080;) – Wolph

ответ

3

Вместо использования 60K спрайтов, которые вряд ли будут работать, я предлагаю вам нарисовать примитивные квадраты и дать им нужные вам цвета.

Это на самом деле часть 3D-программирования, но вы полностью опускаете ось Z и указываете ортогональную камеру.

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

60K спрайты - не очень хорошая идея.

+1

Возможно, это был бы лучший ответ, так как большинство консолей способны передавать 120 000 треугольников в рамке: D Мне просто слишком лениво реализовать это самостоятельно, поэтому я делаю другой подход LOL. Но это, вероятно, будет лучшим способом; Я просто не так хорош с 3D-математикой, но это может быть полезно для кого-то, кто есть. –

+0

Ну, вам не обязательно быть уродкой Math. XNA обрабатывает все сложные вычисления для вас. В любом случае удачи! – SiN

+1

Стоит отметить, что спрайты, реализованные XNA SpriteBatch *, являются примитивными квадратами, а шейдер SpriteBatch сильно оптимизирован для быстрого их рисования. По общему признанию, это делает дополнительную работу, такую ​​как текстурирование, которая может быть удалена здесь. Если бы вы хотели использовать этот метод, хорошей отправной точкой было бы изменение шейдера SpriteBatch непосредственно из http://creators.xna.com/en-US/utilities/spritebatchshader. Хотя весь этот метод ужасен - придерживайтесь пиксельных шейдеров и если вы должны вытащить столько данных на графический процессор, текстура будет использовать меньшую пропускную способность, чем сумасшедшая геометрия на пиксель! –

Смежные вопросы