|
С# Средство разработки на платформе .Net |
26.12.2009, 01:40
|
#1
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Layer in XNA (слои)
Такой вот вопрос, мож кто разбирался. можно ли изменить диапазон слоев при отрисовке текстур например от 0 до 10. по дефолту стоит 0-1.
если много текстур, чтобы не происходило сбоев в наложении приходится ставить минимальный шаг 0.02f. что очень не удобно и иногда текстур бывает слишком много чтобы можно было их уместить в таком маленьком диапазоне
|
(Offline)
|
|
27.12.2009, 00:01
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Layer in XNA (слои)
Немного не понятен вопрос... что за слои в 3D графике? Если нужно нарисовать много тектсур и не мучится с Z-Fighting'ом то тебе надо просто отсортировать текстуры(а точнее спрайты) перед выводом и рисовать их с выключенным бэкбуфером.
|
(Offline)
|
|
27.12.2009, 00:58
|
#3
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Layer in XNA (слои)
отрисовка 2д текстур. SpriteBatch.Draw (Texture2D, Vector2, Nullable<Rectangle>, Color, Single, Vector2, Vector2, SpriteEffects, Single)
последгний пареметр - номер слоя, от 0 до 1. вот можно ли изменить этот диапазон.
|
(Offline)
|
|
27.12.2009, 03:16
|
#4
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Layer in XNA (слои)
вот можно ли изменить этот диапазон.
|
Неа. Но зато можно эмулировать слои с помощью матрицы трансформации, которая передается в spriteBatch.Begin(...);
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 03:28
|
#5
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Layer in XNA (слои)
хм... это идея.. спасибо буду думать как организовать
|
(Offline)
|
|
27.12.2009, 04:20
|
#6
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Layer in XNA (слои)
не, некатит такой вариант. это мне получается нужно будет заканчивать рендер спрайт бренчем для смены матрицы. в таком случае сам смысл использования матриц теряется
Или я не понял чегото?
Я кажется понял)) не сразу до меня доходит. но всётаки для подтверждения моих догадок можно услышать обьяснения работы с этой матрицей.
|
(Offline)
|
|
27.12.2009, 06:31
|
#7
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Layer in XNA (слои)
Ты сможешь сэмулировать слои. Когда упрешься в лимит 0...1, ты применяешь матрицу, которая сдвинет "центр" отрисовки, и ты снова будешь использовать диапазон 0...1.
Хотя лучше все-таки вместится в него, без геморроя лишнего :Р
|
(Offline)
|
|
27.12.2009, 12:33
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Layer in XNA (слои)
Сортировкой никто не пользуется? Ведь это еще и оптимизирует вывод графики за счет отключения DepthTest'а. Или Вы всегда полагаетесь на стандартные классы вывода типа SpriteBatch? Почему бы не разработать собственную замену SpriteBatch, для которой эти ограничения, с которыми Вы столкнулись, легко решались бы очередью на вывод.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:38.
|