Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 02.06.2012, 13:24   #31
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Хм. А можно как-нибудь посмотреть, как это в Максе сделано? Ведь там это дело быстрее, чем в XNA.
И еще. Раз вывод картинки все равно происходит благодаря шейдерам, то почему в Максе нельзя с ними работать?
(Offline)
 
Ответить с цитированием
Старый 02.06.2012, 14:18   #32
radiobutton
Бывалый
 
Регистрация: 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
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Нет, что-то не так.
В террарии, которая сделанна на XNA, у меня было 60 фпс. Когда я делал на максе Виво с видом сбоку, выдавало 80 фпс. Из моего теста следует, что при 100 картинках разница между максом и XNA в 300 фпс. В проектах же, картинок куда больше чем 100.Размеры картинок в Террарии и в Виво одни и те же(16х16). А значит, что проблема в чем-то другом.
(Offline)
 
Ответить с цитированием
Старый 02.06.2012, 15:55   #34
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: Вопросы по XNA.

Сообщение от Nikich Посмотреть сообщение
Нет, что-то не так.
В террарии, которая сделанна на XNA, у меня было 60 фпс. Когда я делал на максе Виво с видом сбоку, выдавало 80 фпс. Из моего теста следует, что при 100 картинках разница между максом и XNA в 300 фпс. В проектах же, картинок куда больше чем 100.Размеры картинок в Террарии и в Виво одни и те же(16х16). А значит, что проблема в чем-то другом.
в XNA ограничение на фпс в 60 стоит же.
(Offline)
 
Ответить с цитированием
Старый 02.06.2012, 16:05   #35
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Так я его снял, чтобы проверить сколько фпс. Возможно я его не так снял
(Offline)
 
Ответить с цитированием
Старый 02.06.2012, 16:15   #36
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: Вопросы по XNA.

Сообщение от Nikich Посмотреть сообщение
Так я его снял, чтобы проверить сколько фпс. Возможно я его не так снял
я на счет того что
В террарии, которая сделанна на XNA, у меня было 60 фпс.
(Offline)
 
Ответить с цитированием
Старый 02.06.2012, 16:21   #37
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Я это к тому, что разница должна быть больше чем на 300 фпс, а разница только на 20.
Так что вопрос еще актуален.
(Offline)
 
Ответить с цитированием
Старый 03.06.2012, 00:22   #38
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Хотя я подумал, пока что это не важно. Если меньше 60 выдавать будет, то буду переживать, а пока 2000 тоже хватит.
Появилась идея для игры. И тут как раз нужен шейдер.
У кого-нибудь есть пример самого простого шейдера для XNA? Например, шейдер, который будет цвет каждого пикселя делать ярче, или темнее.
(Offline)
 
Ответить с цитированием
Старый 03.06.2012, 01:17   #39
Dream
быдло
 
Регистрация: 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
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

А картинки какие брал?
UPD
Сегодня я кое-что вспомнил. В Максе ведь есть команды GetPixel WritePixel. А значит, на нем можно писать пиксельные шейдеры?

Последний раз редактировалось Nikich, 03.06.2012 в 11:32.
(Offline)
 
Ответить с цитированием
Старый 03.06.2012, 14:16   #41
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: Вопросы по XNA.

Сообщение от Nikich Посмотреть сообщение
А картинки какие брал?
UPD
Сегодня я кое-что вспомнил. В Максе ведь есть команды GetPixel WritePixel. А значит, на нем можно писать пиксельные шейдеры?
Нет. Шейдеры обрабатываются в графическом процессоре, который специально организован чтобы выполнять операции с векторами за 1 такт.
А те команды что ты привел больше похожи на обычные вин апи функции, которые очень долгие
(Offline)
 
Ответить с цитированием
Старый 03.06.2012, 17:55   #42
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Вопросы по XNA.

Сообщение от radiobutton Посмотреть сообщение
Нет. Шейдеры обрабатываются в графическом процессоре, который специально организован чтобы выполнять операции с векторами за 1 такт.
А те команды что ты привел больше похожи на обычные вин апи функции, которые очень долгие
Т.к. выполняются на уровне CPU. И не имеют того конвеера который имеет шейдер, для интерполяции данных и т.п.
(Offline)
 
Ответить с цитированием
Старый 03.06.2012, 22:30   #43
Nikich
Бывалый
 
Регистрация: 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
radiobutton
Бывалый
 
Регистрация: 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
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Нет. Оно не рисуется не в XNA, не в Max'e. Это легко заметить, если выдвинуть картинки за экран - фпс увеличивается в разы.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com