forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   raycasting (http://forum.boolean.name/showthread.php?t=18551)

alko 31.12.2013 00:59

Ответ: raycasting
 
Цитата:

Нужно создать фрейм буфер в ОЗУ через обычный malloc например и обращаться к нему как к двумерному массиву:
В приведенном мною коде это есть.
Код:

Uint32 buffer[screenWidth][screenHeight];
Цитата:

затем достаточно сделать только ОДИН вызов SDL чтобы он весь буфер скопировал в видеопамять и вывел на экран.
Так опять же, это делает функция :
Код:

drawBuffer(buffer[0]);
Я в курсе, что после каждой записи пикселя в ОЗУ глупо выплёскивать всё это на экран, не дождавшись завершения обновления всей картинки.

alko 31.12.2013 01:11

Ответ: raycasting
 
Вложений: 1
"чистый" SDL , без quickCG тоже медленно рисует вроде бы.
Вот я когда-то давно клепал на чистом SDL движок (с рейкастингом он правда никак не связан, но рисует всё попиксельно). На пентиуме тоже дико лагает. На гигагерцах вполне нормально идёт.
Правда в этом моём движке проц шибко много ненужных вещей делает. Например , если спрайт находится за спрайтом, то невидимые зрителю пиксели он всё равно рисует.

Samodelkin 31.12.2013 01:27

Ответ: raycasting
 
Работает, немного глючит курсор когда ездит снизу, справа - он попадает в область где не очищается буфер. Также если уехать сильно влево/вправо то глючить начинает бекграунд. Также нету синхронизации по времени? Все спрайты я проезжаю за 2 сек.

alko 31.12.2013 11:16

Ответ: raycasting
 
Цитата:

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

Цитата:

немного глючит курсор когда ездит снизу, справа - он попадает в область где не очищается буфер. Также если уехать сильно влево/вправо то глючить начинает бекграунд.
Знаю... То я так, эксперементировал с масштабированием спрайтов когда-то.

alko 01.01.2014 17:06

Ответ: raycasting
 
Вложений: 1
Есть порт вульфенштейна на SDL.
Там он работает как и положено.
Нужно будет глянуть как там реализован вывод пикселя.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot