Войти
ПрограммированиеФорумОбщее

ZenGL Update (7 стр)

Страницы: 1 2 3 4 5 6 7
#90
(Правка: 23:43) 23:39, 23 ноя. 2021

А вот что плохо решаемо, так вот это:

procedure csprite2d_Draw(Texture: zglPTexture; X, Y, W, H, Angle: Single; const CutRect: zglTRect; Alpha: Byte = 255; FX: LongWord = FX_BLEND);
Тут не хватает базового функционала - угол поворота один, а надо - два. Типа такого:
AngleT, Angle: Single; 
AngleT должен поворачивать текстуру перед тем, как из неё вырежут прямоугольный кусок.
Angle - поворачивает после вырезания.

Тогда при AngleT=45; Angle=0; на экран выведется неповёрнутый прямоугольник, контент в котором повёрнут. Пока же для такого "подсматривания в замочную скважину за вращающимся диском" надо цирк с конями устраивать.


#91
0:11, 24 ноя. 2021

Skvoznjak, по сути, надо глядеть ещё глубже и рассматривать не спрайт, а определённый объект, у которого есть спрайт. У которого есть свойства... и многое другое.
В одном случае, да, ты прав. В другом случае Andru предоставил процедуры для работы со спрайтами, чтоб "новичок" не заморачивался, а мог сделать сразу. Ты говоришь о "сложных" вещах, которые в 2D почти не используются. )))
Потому вводить в ZenGL можно много нужного и не нужного. И постараться предоставить возможность "включать/выключать" нужное и не нужное. )))

#92
0:46, 24 ноя. 2021

Mirrel
>Ты говоришь о "сложных" вещах, которые в 2D почти не используются. )))

Это зависит от фантазии художника. Если сам не рисуешь, то никогда до такого сам и не дойдёшь. А если рисуешь, то однажды можешь захотеть нарисовать подсветку кирпичу. И тут придётся мастерить дырявую текстуру чтобы под неё прятать и кирпич и вращающуюся над ним полупрозрачную текстуру целиком. А будь для этого специальная процедура, то кирпич можно было-бы наверх положить и накрыть маленьким прямоугольничком.

Рисовальная процедура такая вычурная (если её одну менять, то там звиздец рисуется), что проще ради такого случая рисовать дырявую текстуру и искать место, куда её присобачить.

#93
10:24, 24 ноя. 2021

Над такими выборками я бы сильно не заморачивался, надел поверх "кирпича" и потом с кирпича бы и снял.
А поворот текстуры обычно нужно для натягивания её на какой-то объёмный объект. В большинстве своём люди делают спрайтами всё, потому и идут четырёхугольники.

Натягивать текстуры на 3D объекты в ближайшее время я пока не буду, но я думаю немало примеров есть как это делается.
В 2D изголяться... даже не знаю, стоит ли?

Но подобное должно быть реализовано. Если столкнусь, гляну что можно сделать, сейчас я слишком разлетелся в разные стороны... Ни для Android не доделал ни ещё какие-то мелочи...

Хотя как раз мелочи и подгоняю. Какие-то примитивы добавил, редактировал файл для GLES, добавил всё что было в спецификации, но пока большую часть закомментировал (нужно ли это всё там вообще?). Надо добавить до полного OpenGL. Чтоб люди могли использовать 3D OpenGL в ZenGL, если вручную что-то захотят собрать, да для тестов. А для этого надо либо перебрать dglOpenGL либо всё вручную сделать... (грохнуться... туда всё запихивать...).
Заодно изучаю OpenGL и тренируюсь. От одной ошибки к другой.

Не считая, что надо обновлять библиотеки или заменять их... ))))

#94
14:20, 24 ноя. 2021

В GLES есть особенность (на андроиде так точно, на iOS не знаю) - либо используем старый GLES1.0, с glBegin и прочими SetMatrix, либо новый GLES2+, с шейдерами и без старых функций. В ZenGL - первый, а для перевода на второй все функции надо переделать под шейдеры.
Поэтому для мобилок он скорее мертв - спрайты подвигать сможешь, а захочешь эффекты добавить - фиг, только переходить на другой движок.

#95
15:16, 24 ноя. 2021

kipar, а что ты хочешь для 2D? ))) Какую супер-производительность? Или какие-то новые Андрюши не поддерживают GLES 1.0(1.1)?
В том виде, в котором предоставлены функции это без разницы, для какой платформы. Они просто устарели, но просты в использовании. Для 2D это можно использовать до скончания веков. Для 3D мы будем ограничены (больше своими знаниями и умениями, ну и тем, что уже забывается всё). А так, формулы ни куда не денутся, их просто надо будет перевести из одного формата в другой.
Основа всегда будет одна. Если только полностью всё не поменяется. )))

А так же, у меня подозрения, что использовать можно все функции сразу GLES 1.0-3.0. Потому что в ZenGL как раз используются функции из GLES 2.0 частично, при чём работают.

#96
15:40, 24 ноя. 2021

Mirrel
> А так же, у меня подозрения, что использовать можно все функции сразу GLES
> 1.0-3.0. Потому что в ZenGL как раз используются функции из GLES 2.0 частично,
> при чём работают.
Я пробовал но нет, шейдер не создается, требует новый контекст. А с новым контекстом не работают функции из 1.0.

#97
20:48, 24 ноя. 2021

Mirrel
> Хотя странно, почему это могло произойти?
Это норма для Android и это надо учитывать в Lifecycle приложения. "Экран инициализируется" при создании Activity, а Activity может быть создана рандомно позже момента запуска приложения.

#98
20:56, 24 ноя. 2021

Vitorio, даже так? Ладно, буду знать, посмотрим что с этим можно сделать.

kipar, разве у них разные контексты? Не заползал просто ещё в GLES 2.0 и выше. На java там всё равно создавался контекст через первую версию.

#99
23:03, 24 ноя. 2021

Mirrel
>Натягивать текстуры на 3D объекты в ближайшее время я пока не буду, но я думаю немало примеров есть как это делается.

А вот этого я и не предлагал. Такое делается в блендере с самым простым рендером, а потом патчится в гимпе до состояния 2Д. Имелась в виду именно иллюминация плоских 2Д объектов. Для мобилок, конечно - и так сойдёт(ц) Там экранчик мелкоскопический, одна радость, что легко на 90 градусов поворачивается, железо зоопарковое и с урезанным функционалом. Мышки нет, клавы нет...

#100
23:55, 24 ноя. 2021

Skvoznjak, я лишь пытаюсь рассказать, почему я этого не делаю.

Это очередная мелочь, которая займёт немало времени, ведь это делать прийдётся не в одном месте, а постараться сразу везде. Я не могу разорваться на части. )))

#101
0:14, 25 ноя. 2021

Так уже и не надо ничего делать, всё решено другими методами. А как там хреново реализовать всё правильно, сам прекрасно знаю - видел и тестировал, реализация размазана по половине движка. Если пытаться делать в одном месте, то получается то большой повёрнутый чёрный прямоугольник или даже треугольник:)

#102
2:24, 25 ноя. 2021

Mirrel
> Не заползал просто ещё в GLES 2.0 и выше.
ну вот как заползешь будет сюрприз)

#103
14:01, 25 ноя. 2021

kipar, не думаю. Там всего лишь флаг меняется. В маке подобная ерунда.

Страницы: 1 2 3 4 5 6 7
ПрограммированиеФорумОбщее