TEDERIs

Members
  • Content Count

    152
  • Joined

  • Last visited

  • Days Won

    1

TEDERIs last won the day on May 19 2018

TEDERIs had the most liked content!

Community Reputation

13 Decent

7 Followers

About TEDERIs

  • Rank
    Busta

Details

  • Gang
    Citizen
  • Interests
    Programming and engineering

Recent Profile Visitors

1,330 profile views
  1. Доброго времени суток. Секрет здесь в модели персонажа. Перед тем как попасть в игру, моделька снабжается весами для каждой вершины и направляющими векторами. Затем вектора пакуются во float и помещаются в дополнительные UV каналы. В шейдере вектор распаковывается и перемножается на вес. Дальше уже заурядное перемножение на юниформ константу. Тело персонажа делится на 6 зон морфинга, каждая зона утилизирует однин из двух доп. UV каналов, и твикается доп. константами чтобы добавить морфинг для определённых частей тела.
  2. Нет, на данный момент такой возможности нет
  3. Любой транспорт, включая рельсовый, может приобрести любого вида движение с помощью функции setElementPosition. Достаточно определить пути, и покадрово обновлять положение транспорта в событии onClientPreRender. Аргумент dt этого события поможет сделать движение одинаковым вне зависимости от частоты кадров.
  4. TEDERIs

    Shader find or create

    A simple mask shader should help you. Just create an arrow texture and use it along with the mask shader. An example of this shader you can find at Shader_examples
  5. Самое простое - рисовать сектора при помощи текстуры. Но это может дать неудовлетворительные результаты из-за растрового характера текстуры, будет сложно масштабировать и варьировать кол-во секторов. Поэтому шейдер в самом деле хороший выбор. Но что имеется в виду под прозрачностью? Судя по скриншоту здесь наверное имелось в виду размытие фона. Для этих целей используется screen-space шейдер на подобии blur. Поверх блюра уже рисуется колесо выбора оружия.
  6. TEDERIs

    [Вопрос] Element tree

    Дерево элементов - это простейшая структура, которая напоминает собой настоящее дерево с ветвями. Места объединения ветвей называют узлами или нодами. Root - это нематериальный узел, который просто стоит выше всех в дереве. Ниже идут узлы игроков и ресурсов. Дерево очень полезно при вызове определенных событий. Например, если мы хотим, чтобы событие распространялось на все элементы дерева - нужно просто вызвать triggerEvent и указать root или getRootElement(). При этом событие пройдет по всем ветвям и узлам, дав о себе знать всем без исключения нодам. Но представим ситуацию, что мы хотим затронуть лишь определенные узлы, начиная с некоторого. Что для этого нужно сделать? Верно, расположить эти узлы под каким-то другим узлом и вызвать triggerEvent, указав этот самый узел. Событие будет распространяться только по нисходящим дочерним узлам. Функция getElementRoot() возвращает root элемент. То есть, можно сказать root = getElementRoot(), они идентичны, и переменная root нужна просто для удобства. Точно так же обстоят дела с getResourceElement(getThisResource()), которая идентична resourceRoot. Если мы хотим, чтобы событие затронуло только элементы под узлом resourceRoot - мы вызываем triggerEvent("onSomeEvent", resourceRoot, ...). Если заходить дальше, то вызов triggerEvent так же затрагивает узлы выше. То есть, triggerEvent("onSomeEvent", player, ... ) так же даст о себе знать root элементу. По поводу того, что такое дерево можно более подробно поискать в интернетах.
  7. TEDERIs

    MTA ASE Parser

    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
  8. TEDERIs

    [HELP] Animated Objects

    I think a shader is the best choice. Here you can find lots of examples.
  9. TEDERIs

    Не скрывается GUI

    Если ElementData только локально на клиенте, то это не окажет никакого влияния на сервер. Если ElementData используется для синхронизации между клиентом и сервером, то здесь есть два фактора, влияющих на производительность: Частота изменения ElementData. Чем чаще вызывается setElementData, тем хуже. Длина имени ElementData и объем синхронизируемых данных. Чем длина имени больше и чем объем данных больше, тем хуже.
  10. TEDERIs

    Custom ped morphing [18+]

    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.
  11. TEDERIs

    Green screen shader

    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
  12. TEDERIs

    Collection of my resources

    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
  13. TEDERIs

    Custom ped morphing [18+]

    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.
  14. TEDERIs

    Green screen shader

    Just use the code above to render your object with any contrast color. Then write simple post-processing shader, that finds the contrast color, converts it to black-n-white and delimits your object from a background. In case of the depth buffer, you might use the example from wiki . It probably also will require hiding of all world objects. For this is possible to use vertex shader that moves all vertices far away. By the way, a sample of the second approach you can watch here