-
Posts
153 -
Joined
-
Last visited
-
Days Won
2
TEDERIs last won the day on August 29 2020
TEDERIs had the most liked content!
Details
-
Gang
Citizen
-
Interests
Programming and engineering
Recent Profile Visitors
3,875 profile views
TEDERIs's Achievements
Busta (15/54)
19
Reputation
-
Carl Rayanitch DZ started following TEDERIs
-
marcelluss started following TEDERIs
-
NonVisible started following TEDERIs
-
TEDERIs changed their profile photo
-
Good news, everyone! I think some of you had already heard about my project Oblivion Lost: Online(or The Exclusion Zone now). Today I have decided to release all the things around this project. All the resources are published right now. Enjoy it because it was made with LOVE! Comes with batteries included! The link: https://github.com/tederis/theexzone
- 1 reply
-
- 6
-
Доброго времени суток. Секрет здесь в модели персонажа. Перед тем как попасть в игру, моделька снабжается весами для каждой вершины и направляющими векторами. Затем вектора пакуются во float и помещаются в дополнительные UV каналы. В шейдере вектор распаковывается и перемножается на вес. Дальше уже заурядное перемножение на юниформ константу. Тело персонажа делится на 6 зон морфинга, каждая зона утилизирует однин из двух доп. UV каналов, и твикается доп. константами чтобы добавить морфинг для определённых частей тела.
-
Нет, на данный момент такой возможности нет
-
Подключение дополнительных track.dat для MTA
TEDERIs replied to Erema93's topic in Russian / Русский
Любой транспорт, включая рельсовый, может приобрести любого вида движение с помощью функции setElementPosition. Достаточно определить пути, и покадрово обновлять положение транспорта в событии onClientPreRender. Аргумент dt этого события поможет сделать движение одинаковым вне зависимости от частоты кадров. -
Самое простое - рисовать сектора при помощи текстуры. Но это может дать неудовлетворительные результаты из-за растрового характера текстуры, будет сложно масштабировать и варьировать кол-во секторов. Поэтому шейдер в самом деле хороший выбор. Но что имеется в виду под прозрачностью? Судя по скриншоту здесь наверное имелось в виду размытие фона. Для этих целей используется screen-space шейдер на подобии blur. Поверх блюра уже рисуется колесо выбора оружия.
-
Дерево элементов - это простейшая структура, которая напоминает собой настоящее дерево с ветвями. Места объединения ветвей называют узлами или нодами. Root - это нематериальный узел, который просто стоит выше всех в дереве. Ниже идут узлы игроков и ресурсов. Дерево очень полезно при вызове определенных событий. Например, если мы хотим, чтобы событие распространялось на все элементы дерева - нужно просто вызвать triggerEvent и указать root или getRootElement(). При этом событие пройдет по всем ветвям и узлам, дав о себе знать всем без исключения нодам. Но представим ситуацию, что мы хотим затронуть лишь определенные узлы, начиная с некоторого. Что для этого нужно сделать? Верно, расположить эти узлы под каким-то другим узлом и вызвать triggerEvent, указав этот самый узел. Событие будет распространяться только по нисходящим дочерним узлам. Функция getElementRoot() возвращает root элемент. То есть, можно сказать root = getElementRoot(), они идентичны, и переменная root нужна просто для удобства. Точно так же обстоят дела с getResourceElement(getThisResource()), которая идентична resourceRoot. Если мы хотим, чтобы событие затронуло только элементы под узлом resourceRoot - мы вызываем triggerEvent("onSomeEvent", resourceRoot, ...). Если заходить дальше, то вызов triggerEvent так же затрагивает узлы выше. То есть, triggerEvent("onSomeEvent", player, ... ) так же даст о себе знать root элементу. По поводу того, что такое дерево можно более подробно поискать в интернетах.
-
Hi everyone! I have made a simple parser of ASE bytecode to convert it to JSON format. Maybe it'll be useful for someone else. The program automatically downloads bytecode and writes it to readable JSON text plain. Mainly it was developed for Linux purposes, but may be simply built under the Windows. https://github.com/tederis/ase2json
-
Lua 5.1
-
Если ElementData только локально на клиенте, то это не окажет никакого влияния на сервер. Если ElementData используется для синхронизации между клиентом и сервером, то здесь есть два фактора, влияющих на производительность: Частота изменения ElementData. Чем чаще вызывается setElementData, тем хуже. Длина имени ElementData и объем синхронизируемых данных. Чем длина имени больше и чем объем данных больше, тем хуже.
- 5 replies
-
- gui
- static image
-
(and 1 more)
Tagged with:
-
I didn't use the default semantics because they provide bone-relative information only. It's not enough for appropriate morphing. Instead, I have baked morphing normals into vertex elements(normals and other) as a scalar for each morphing feature. Thus for three morphing features is required three floats or one vector(normal, for instance). In an example for the breast from the video above, I packed the normals to a scalar and calculate attenuation weights. At a shader side, these normals should be unpacked and multiplied by weights. In this way, it's possible to create universal morphing regardless of its complexity.
-
So, I have released the resource from the video. There is a complex login system that includes the logo, rain rendering, and custom UI example. I hope it helps you. https://github.com/tederis/mta-resources/tree/master/sp_login
-
I have added the new resource that may be helpful for creating your own login system. It's also an example for using the depth-buffer. https://github.com/tederis/mta-resources/tree/master/sp_login
-
Hello everyone. About 3 years ago I have worked on some project and got experiments on skin morphing. The video below shows some results in that: MTA gives all opportunities for creating a morphing for a face, body or something else. I hope in the future someone makes a full-customizable character.