forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   zoom2 (http://forum.boolean.name/showthread.php?t=9100)

teremochek 17.09.2009 00:05

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

Сообщение от ABTOMAT (Сообщение 118789)
Ну то есть у тебя CS думает, что монитор 1920x1080 и рендерит соответствующе, и затем растягивает по вертикали в "родные" 1920x1200, т.к. ЖК иначе не понимает.
А бывает, что картинка растягивается уже во время трансформации, перед рендером (т.е. FOV камеры неправильный)

Вроде понял. Те. матрицу проэкции изменяет монитор, а интерполяцию пикселей изменяет код игры и видеокарта...

ABTOMAT 17.09.2009 00:13

Ответ: zoom2
 
Нет, неправильно понял :wallbash: Наоборот
Это, наверное, я тупо рассказал, тут рассказано получше:
http://www.lki.ru/text.php?id=3857
Матрица проекции никакого отношения к 2Д-графике не имеет (я имел ввиду математическую матрицу, а не ЖК).

teremochek 17.09.2009 12:08

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

Сообщение от jimon (Сообщение 117991)
teremochek
тебе нужно помимо увелечения самих картинок, сдвигать их координаты (те умножать на scale)

Спасибо!Хорошо работает.
Цитата:

Не плохая идея, но все коллизии игры пойдут на смарку...
Если сдвигать координаты, то соответственно в картинке будет больше пикселей(из за scale)и я не смогу сделать точные коллизии...
Смог! Все оказалось просто. Коллизии выщитываются без умножения на scale:
...
Drawimage player,x*zoom,y*zoom
If x>48 then x=48
...
Получаеться что изображение высчитываеться в одном измерении, а коллизия в другом.Т.е. Искажаеться только изображение, а физика игры не меняеться...

teremochek 18.09.2009 11:37

Ответ: zoom2
 
Когда я делаю Scale, то около некоторых пикселей появляються разводы..
Их можно как-нибуть убрать ?

jimon 18.09.2009 11:43

Ответ: zoom2
 
teremochek
хранить картинки в png, делать scale с фильтрацией (хотя в динамике это тяжко), отключить фильтрацию текстур в blitzmax'е (а есть ли она ?)

teremochek 23.09.2009 00:23

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

Сообщение от jimon (Сообщение 118925)
teremochek
хранить картинки в png, делать scale с фильтрацией (хотя в динамике это тяжко), отключить фильтрацию текстур в blitzmax'е (а есть ли она ?)

Картинки у меня а png, На счет фильтрации немогу ответить, может кто умеет филтрацией в BlitzMax пользоваться ?
У меня получилось, сделав соотношение scaleX 0.97, scaleY 1.02(или менее)

Притом в новой версии BlitzMzx 1.33 это не прокатывает,т.е. При любом scale есть разводы.(Моя версия 1.12)
Еще заметил что если двигать изображение, по долям пикселей (X=x+0.2),
то можно заметить, что разводы меняют положение(то сверху, то снизу и т.l.)

SBJoker 23.09.2009 00:30

Ответ: zoom2
 
В Бмаксе может происходить заблюривание картинки если выставить начало координат картинки в дробную величину. Так же стандартная функция MidHandle выставляет дробные значения якоря картинки, и приводит к заблюриванию..

teremochek 27.09.2009 08:01

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

Сообщение от SBJoker (Сообщение 119476)
В Бмаксе может происходить заблюривание картинки если выставить начало координат картинки в дробную величину. Так же стандартная функция MidHandle выставляет дробные значения якоря картинки, и приводит к заблюриванию..

А его можно как-то отключить, или сменить цвет ? Или возможно существуют разные виды заблюривания ?

SBJoker 27.09.2009 12:30

Ответ: zoom2
 
я же написал просто ставьте якорь на целое число пикселей.

teremochek 28.09.2009 00:08

Ответ: zoom2
 
Если я делаю scale меньше,чем 0.98(по одной из оси координат, то разводы пропадают). Но все равно при этих условиях мне не удаеться сделать картинку нужного размера...Хотя, если уменьшить разрешение,
(а scale при этом остаеться таким-же),а затем уменьшить scale, то нужный размер картинки, без разводов получаеться..,Вот только при этом у меня искажаються некоторые линии и текст!

teremochek 30.09.2009 00:18

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

Сообщение от teremochek (Сообщение 118924)
Когда я делаю Scale, то около некоторых пикселей появляються разводы..
Их можно как-нибуть убрать ?

Можно! Для этого нужно использовать SetMaskColor!
(А раньше я просто вырезал images с помощью Фотошопа, и при использовании SetScale появлялись эти серые разводы)


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

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