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

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

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 31.12.2013, 00:59   #61
alko
Оператор ЭВМ
 
Регистрация: 21.12.2013
Сообщений: 20
Написано 10 полезных сообщений
(для 10 пользователей)
Ответ: raycasting

Нужно создать фрейм буфер в ОЗУ через обычный malloc например и обращаться к нему как к двумерному массиву:
В приведенном мною коде это есть.
 Uint32 buffer[screenWidth][screenHeight];
затем достаточно сделать только ОДИН вызов SDL чтобы он весь буфер скопировал в видеопамять и вывел на экран.
Так опять же, это делает функция :
drawBuffer(buffer[0]);
Я в курсе, что после каждой записи пикселя в ОЗУ глупо выплёскивать всё это на экран, не дождавшись завершения обновления всей картинки.
(Offline)
 
Ответить с цитированием
Старый 31.12.2013, 01:11   #62
alko
Оператор ЭВМ
 
Регистрация: 21.12.2013
Сообщений: 20
Написано 10 полезных сообщений
(для 10 пользователей)
Ответ: raycasting

"чистый" SDL , без quickCG тоже медленно рисует вроде бы.
Вот я когда-то давно клепал на чистом SDL движок (с рейкастингом он правда никак не связан, но рисует всё попиксельно). На пентиуме тоже дико лагает. На гигагерцах вполне нормально идёт.
Правда в этом моём движке проц шибко много ненужных вещей делает. Например , если спрайт находится за спрайтом, то невидимые зрителю пиксели он всё равно рисует.
Вложения
Тип файла: rar raycast.rar (223.8 Кб, 699 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Samodelkin (31.12.2013)
Старый 31.12.2013, 01:27   #63
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 978
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: raycasting

Работает, немного глючит курсор когда ездит снизу, справа - он попадает в область где не очищается буфер. Также если уехать сильно влево/вправо то глючить начинает бекграунд. Также нету синхронизации по времени? Все спрайты я проезжаю за 2 сек.
(Offline)
 
Ответить с цитированием
Старый 31.12.2013, 11:16   #64
alko
Оператор ЭВМ
 
Регистрация: 21.12.2013
Сообщений: 20
Написано 10 полезных сообщений
(для 10 пользователей)
Ответ: raycasting

Также нету синхронизации по времени? Все спрайты я проезжаю за 2 сек.
Пытался высчитывать дэльта-тайм между фреймами. Но он всё равно криво считается.

немного глючит курсор когда ездит снизу, справа - он попадает в область где не очищается буфер. Также если уехать сильно влево/вправо то глючить начинает бекграунд.
Знаю... То я так, эксперементировал с масштабированием спрайтов когда-то.
(Offline)
 
Ответить с цитированием
Старый 01.01.2014, 17:06   #65
alko
Оператор ЭВМ
 
Регистрация: 21.12.2013
Сообщений: 20
Написано 10 полезных сообщений
(для 10 пользователей)
Ответ: raycasting

Есть порт вульфенштейна на SDL.
Там он работает как и положено.
Нужно будет глянуть как там реализован вывод пикселя.
Вложения
Тип файла: rar Wolf4SDL-1.2-src.rar (972.7 Кб, 701 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Samodelkin (01.01.2014)
Ответ


Опции темы

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

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


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


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