![](images/chestnut/misc/left.gif) |
С# Средство разработки на платформе .Net |
02.06.2012, 13:24
|
#31
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Хм. А можно как-нибудь посмотреть, как это в Максе сделано? Ведь там это дело быстрее, чем в XNA.
И еще. Раз вывод картинки все равно происходит благодаря шейдерам, то почему в Максе нельзя с ними работать?
|
(Offline)
|
|
02.06.2012, 14:18
|
#32
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от Nikich
Хм. А можно как-нибудь посмотреть, как это в Максе сделано? Ведь там это дело быстрее, чем в XNA.
И еще. Раз вывод картинки все равно происходит благодаря шейдерам, то почему в Максе нельзя с ними работать?
|
Давайте отвлечемся на минутку от игростроения и поговорим о языке высокоуровневых шейдеров - High Level Shader Language (HLSL). До появления XNA DirectX посылать свои инструкции графическому устройству с помощью механизма, называемого Fixed Function Pipeline (FFP). Но этот механизм работал для простых графических карт, но со временем сложность аппаратных ресурсов все больше возрастала. От FFP требовали соответствия возросшим возможностям аппаратного обеспечения.
Даже на современных видеокартах FFP применяется как шейдер. И по своему действию этот механизм похож на эффект BasicEffect.
Вместо того, чтобы продолжать расширять функционал FFP, в Microsoft решили предоставить возможность разработчиком напрямую взаимодействовать с аппаратными устройствами с помощью специально созданного для этих целей языка.
|
мб потому что макс использует ffp.
|
(Offline)
|
|
02.06.2012, 15:36
|
#33
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Нет, что-то не так.
В террарии, которая сделанна на XNA, у меня было 60 фпс. Когда я делал на максе Виво с видом сбоку, выдавало 80 фпс. Из моего теста следует, что при 100 картинках разница между максом и XNA в 300 фпс. В проектах же, картинок куда больше чем 100.Размеры картинок в Террарии и в Виво одни и те же(16х16). А значит, что проблема в чем-то другом.
|
(Offline)
|
|
02.06.2012, 15:55
|
#34
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от Nikich
Нет, что-то не так.
В террарии, которая сделанна на XNA, у меня было 60 фпс. Когда я делал на максе Виво с видом сбоку, выдавало 80 фпс. Из моего теста следует, что при 100 картинках разница между максом и XNA в 300 фпс. В проектах же, картинок куда больше чем 100.Размеры картинок в Террарии и в Виво одни и те же(16х16). А значит, что проблема в чем-то другом.
|
в XNA ограничение на фпс в 60 стоит же. ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
02.06.2012, 16:05
|
#35
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Так я его снял, чтобы проверить сколько фпс. Возможно я его не так снял ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
02.06.2012, 16:15
|
#36
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от Nikich
Так я его снял, чтобы проверить сколько фпс. Возможно я его не так снял ![:)](images/smilies/smile.gif)
|
я на счет того что
В террарии, которая сделанна на XNA, у меня было 60 фпс.
|
|
(Offline)
|
|
02.06.2012, 16:21
|
#37
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Я это к тому, что разница должна быть больше чем на 300 фпс, а разница только на 20.
Так что вопрос еще актуален.
|
(Offline)
|
|
03.06.2012, 00:22
|
#38
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Хотя я подумал, пока что это не важно. Если меньше 60 выдавать будет, то буду переживать, а пока 2000 тоже хватит.
Появилась идея для игры. И тут как раз нужен шейдер.
У кого-нибудь есть пример самого простого шейдера для XNA? Например, шейдер, который будет цвет каждого пикселя делать ярче, или темнее.
|
(Offline)
|
|
03.06.2012, 01:17
|
#39
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Вопросы по XNA.
както вы странно тестите. вот сейчас запусти те два кода и фпс -
BlitzMax - ~1500
XNA - ~2300
Shaders - http://forums.create.msdn.com/forums/t/27849.aspx
по поводу разрешения экрана - GraphicsDevice.Adapter.CurrentDisplayMode
и не забываем - после операций сграфикосом или девайсом лучше сделать ApplyChanges
|
(Offline)
|
|
03.06.2012, 01:43
|
#40
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
А картинки какие брал?
UPD
Сегодня я кое-что вспомнил. В Максе ведь есть команды GetPixel WritePixel. А значит, на нем можно писать пиксельные шейдеры?
Последний раз редактировалось Nikich, 03.06.2012 в 11:32.
|
(Offline)
|
|
03.06.2012, 14:16
|
#41
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от Nikich
А картинки какие брал?
UPD
Сегодня я кое-что вспомнил. В Максе ведь есть команды GetPixel WritePixel. А значит, на нем можно писать пиксельные шейдеры?
|
Нет. Шейдеры обрабатываются в графическом процессоре, который специально организован чтобы выполнять операции с векторами за 1 такт.
А те команды что ты привел больше похожи на обычные вин апи функции, которые очень долгие ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
03.06.2012, 17:55
|
#42
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от radiobutton
Нет. Шейдеры обрабатываются в графическом процессоре, который специально организован чтобы выполнять операции с векторами за 1 такт.
А те команды что ты привел больше похожи на обычные вин апи функции, которые очень долгие ![:)](images/smilies/smile.gif)
|
Т.к. выполняются на уровне CPU. И не имеют того конвеера который имеет шейдер, для интерполяции данных и т.п.
|
(Offline)
|
|
03.06.2012, 22:30
|
#43
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Е-е-е. Видимо я нашёл в чем была проблема. Скорее всего, это было связано с тем, что я всё время создавал новый вектор2.
new Vector2(player_position.X + i * 256, player_position.Y + i1 * 256)
Это строчка работает крайне медленно. Сейчас решил вывести всё в нулевых координатах. Результат - XNA превосходит Макс на 40 фпс.
Но это привело к следующий проблеме: так как тогда выводить картинки? Есть ли какая-нибудь замена вектор2?
|
(Offline)
|
|
03.06.2012, 23:02
|
#44
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы по XNA.
Сообщение от Nikich
Е-е-е. Видимо я нашёл в чем была проблема. Скорее всего, это было связано с тем, что я всё время создавал новый вектор2.
new Vector2(player_position.X + i * 256, player_position.Y + i1 * 256)
Это строчка работает крайне медленно. Сейчас решил вывести всё в нулевых координатах. Результат - XNA превосходит Макс на 40 фпс.
Но это привело к следующий проблеме: так как тогда выводить картинки? Есть ли какая-нибудь замена вектор2?
|
Не хочу разочеровывать, но Vector2.Zero это тоже самое, что new Vector2(0,0)
Мб вся проблема в том, что в максе те картинки что ты рисуешь за экраном просто не рисуются?
Vector2 это структура, тоесть тип значения. Что может быть еще быстрее хз. А выделение памяти для 2 переменных типа float происходит так быстро что ппц.
|
(Offline)
|
|
03.06.2012, 23:08
|
#45
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопросы по XNA.
Нет. Оно не рисуется не в XNA, не в Max'e. Это легко заметить, если выдвинуть картинки за экран - фпс увеличивается в разы.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:17.
|