purebasic.info

PureBasic forum
Текущее время: Ср сен 19, 2018 2:35 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Попиксельный вывод...
СообщениеДобавлено: Пт июн 27, 2008 2:46 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Гм. Начну изделека :) Вот у меня есть знакомый один. Он достаточно давно пишет игры. И у него есть собственный движок. Пишет на си. В общем, все его игры(с не очень сложной, но самописной полной 3д, даже с возможностью рейтрейсинга), хотя и тормозят(сам по себе код главного цикла сложный), но всё-таки довольно спокойно выводят графику,и вполне в реальном времени... И демосцены(2д) тоже явно написаны на основе этого. ...

Так вот. Как я заметил, на пурике (стандартными способами) достичь производительности более 30 фпс у меня так и не получилось, хотя, как говорит тот самый знакомый, в силах компа передавать эту информацию гораздо чаще... Но в чём же тогда дело? Многие кодёры пишут демки на FASM, и явно не сталкиваются с проблемой... Кто-нибудь пробовал?

ЗЫ: Я тестировал несколько вариантов:
1.Обычный массив нужного размера(#ScreenY,Pitch/4-1) с последующим копированием его содержимого в память...
2.Массив аналогичного размера, но с указателем на видеопамять:
Array()=Buffer
3.Через PokeL, No comment =)
4.Через указатель на структуру(кстати, с этой точки зрения функциональнее делать структуру из четырёх чисел R,G,B,A, типа char, их не придётся разделять покомпонентно =)), как в примере DirectScreenDrawing

В общем, как я понимаю, виноват, скорее всего, встроенный графический двиг... Но я не понимаю, как может быть виноват он, если работает через DX? В DXе все функции быстрые....

ЗЗЫ: Сорри за специфическй стиль, но не буду же я себе писать план: что излагать :P

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 27, 2008 10:28 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
1. Попробуй отключить VSync (вертикальную синхронизацию) Эта зараза съедает производительность совершенно необоснованно
Причем похоже на любом движке :)

2. Старый Пурик использует DX7, а он тормознее по сравнению с девятым

3. Попробуй писать на чистом DX без пуриковских команд

4. Старайся избегать рисования средствами GDI и DirectDraw - это ОЧЕНЬ медленно. 3D объекты рисуются гораздо быстрее

5. Попробуй Blitz3D SDK. Это просто, быстро и удобно.

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 27, 2008 3:24 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Спасибо за советы =) Но я вот думаю: а если писать напрямую в видеопамять, типа Poke на АСМе написать? Я так понял, что это примитивный MOV, но я, если честно, не понял, как предать ему адес из переменной. (Ну, Buffer=DrawingBuffer(), и этот самый Buffer надо передать как адрес в памяти... А то MOV пишет значение в переменную, а не в память...

Ну что-то вроде этого:
Код:
1
2
3
4
5
6
 
Number=f(x);какой-то цвет
Buffer=DrawingBuffer()
!MOV eax,number
!MOV ??? [v_Buffer],eax
 



Но так не работает, так как MOV просто копирует не в адрес, на который указывает переменная, а в саму переменную. Впрочем, и *Buffer тоже не так работает, как хотелось бы... =(

1.Да, я вызывал flipBuffers с параметром 0, то есть без синхронизации... Кстати, если ФПС меньше установленного FPS монитора, задержки нет.

2.Насчёт скорости рисования через plot'ы - точно, новый пурик в несколько раз быстрее рисует. Но это - не панацея. Сам по себе вызов процедуры довольно сильно жрёт CPU...

3. ДХ не знаю =(

4.Дык, я говорю именно о попиксельном выводе =) А насчёт GDI и DDraw я не возражаю. Хотя по идее DDraw и рассчитан на это...

5.Движки не люблю :oops: Потому и начал осваивать OpenGL... он хотя бы не ООП... :roll:[/code]

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 30, 2008 2:07 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
All_Creater писал(а):
ДХ не знаю =(

учи :)

All_Creater писал(а):
Хотя по идее DDraw и рассчитан на это

даже ресайз картинки через 3D делается чуть ли не в 10 раз быстрее

All_Creater писал(а):
Движки не люблю

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

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 30, 2008 3:38 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Это да, но мне удобнее отображать что-либо командами типа пуриковских - DisplaySprite и тд. А некоторые движки даже рендерят без спроса. Мне так приятнее формировать картинку на уровне фрагментов, кнтролируя визуализацию =) И вообще, если честно, не вижу трудностей написанияигрушки на чистом ОпенГЛе, безо всяких обёрток :)

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 01, 2008 1:14 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
ну если все только с целью поиграть, тогда я отстал

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 30, 2008 1:06 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Эх, совсем ты коммерционализировался =) Ну да, мечтаю я написать software'ный(возможностей-то больше с точки зрения эффектов. Даже шейдеры не дают такого простора для маневра... А в ДЕМОСЦЕНЕ именно это и нужно, не так ли? :lol: ) рендеринг, а даже подсказок не дают... :?

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB