March 19, 2024, 12:02
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: Loader psk Threejs  (Read 533 times)
lovepsone
Newbie
*
Posts: 19


View Profile
« on: November 27, 2021, 21:55 »

Добрый вечер. Пишу загрузчик psk для threejs (не хочу использовать gltf). Пока пытаюсь грузить геометрию без анимаций в буферную сетку. Столкнулся с проблемой координат UV.
вот как смотрится в Umodel:



вот как у меня:


вот код (пока костыль): https://github.com/lovepsone/WEBLEngenie/blob/master/src/PSKLoader.js


не могу понять как зависят индексы VTXW0000 с UV
« Last Edit: November 27, 2021, 22:00 by lovepsone » Logged

Gildor
Administrator
Hero Member
*****
Posts: 7977



View Profile WWW
« Reply #1 on: November 27, 2021, 22:35 »

Попробуйте инвертировать WedgesBytes.V:
Code:
WedgesBytes.V = 1.0 - WedgesBytes.V
Logged
lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #2 on: November 27, 2021, 22:59 »

Спасибо, помогло. Буду подходить к анимациям и костям. Если все получится, соберу все воедино без костылей.
Logged

RedBear
Full Member
***
Posts: 226


View Profile
« Reply #3 on: November 28, 2021, 10:25 »

Извиняюсь за оффтоп, а для чего нужен Loader psk Threejs?
Logged
lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #4 on: November 28, 2021, 18:30 »

Threejs уппрощает работу с WEBGL( кроссплатформенный API для 3D-графики в браузере). Есть babylonjs (альтернатива) , но там мусора пихают много (мое мнение).
Ну а для примера вот https://threejs.org/, там много чего есть посмотреть. Есть чел, который quake3 в браузер перенес.
« Last Edit: November 28, 2021, 18:36 by lovepsone » Logged

lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #5 on: November 30, 2021, 20:42 »

На данный момент реализована загрузка нескольких материалов (*.mat) + дифузные карты, загрузка индексированной геометрии (изначально грузил без индексов).
https://github.com/lovepsone/WEBLEngenie/blob/master/src/PSKLoader.js
« Last Edit: November 30, 2021, 23:10 by lovepsone » Logged

lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #6 on: December 02, 2021, 19:21 »

Gildor подскажите пожалуйста, всегда ли 1 кость при экспорте начинается с root ? Ил все таки стоит перебрать массив и определить кость root?
Logged

Gildor
Administrator
Hero Member
*****
Posts: 7977



View Profile WWW
« Reply #7 on: December 02, 2021, 19:51 »

Имя произвольное. Корневая кость всегда идёт первой в списке.
Logged
lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #8 on: December 04, 2021, 13:50 »

Спасибо, подскажите еще одно:
 в формате psk есть чунк REFSKELT, который содержит информацию костей. В формате psa есть чунк BONENAMES. Я испробовал 4 разные модели и анимации к ним. REFSKELT от BONENAMES я разницы не увидел. В чем подвох ?
Logged

Gildor
Administrator
Hero Member
*****
Posts: 7977



View Profile WWW
« Reply #9 on: December 04, 2021, 13:54 »

Разница может быть, если анимация делается с расчётом на несколько разным мешей. В psa может не быть каких-то костей, их позиции могут отличаться. По сути, в файле анимации эта информация должна быть использована только для получения имени кости по её индексу. А сама кость берётся уже из меша.
Logged
lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #10 on: December 04, 2021, 14:39 »

Спасибо за разъяснения, и последний вопрос. EXTRAUV0, EXTRAUV1, EXTRAUV2 как завязана с моделью, просто не нашел внятной инфы по этому чунку. Ну мой английский может не особо высокого уровня для понимания.
« Last Edit: December 04, 2021, 14:41 by lovepsone » Logged

Gildor
Administrator
Hero Member
*****
Posts: 7977



View Profile WWW
« Reply #11 on: December 04, 2021, 16:36 »

Это дополнительные текстурные координаты. Просто расширение формата, которое Эпики сделали для UE3. Количество координат в каждом чанке должно совпадать с количеством Wedges.

Вообще советую просто посмотреть исходники UModel, ExportPsk.cpp. Вряд ли там так уж непонятно всё написано Smiley
Logged
lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #12 on: December 04, 2021, 16:49 »

Спасибо, просто тяжело в чужом коде копаться, особенно в с++. Хотя мне с++ больше нравится, очень гибкий язык, но последнее время использую Qt или js.
Logged

lovepsone
Newbie
*
Posts: 19


View Profile
« Reply #13 on: December 08, 2021, 14:07 »

Gildor, мб в треках анимации инвертить нечего не надо ? Просто анимация как-то отъезжает. Или вес не правильно экспортил на атрибуты.
Logged

Gildor
Administrator
Hero Member
*****
Posts: 7977



View Profile WWW
« Reply #14 on: December 08, 2021, 14:20 »

Попробуйте инвертировать кватернион корневой кости.
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS