Jump to content
Korean Random
SkepticalFox

Blender Tank Viewer

Recommended Posts

ну:

sizeof(float)*3==12;
sizeof(uint32)==4;
В игровых ресурсах так запаковано крч.

 

Это запаковка карты нормалей?

Share this post


Link to post

Short link
Share on other sites

кто может отреверсить этот код?

from ctypes import c_uint32

def unpackNormal_tag3(packed):
    pkz=(c_uint32(packed).value>>16)&0xFF^0xFF
    pky=(c_uint32(packed).value>>8)&0xFF^0xFF
    pkx=(c_uint32(packed).value)&0xFF^0xFF
    if pkx>0x7f:
        x=-float(pkx&0x7f)/0x7f
    else:
        x=float(pkx^0x7f)/0x7f
    if pky>0x7f:
        y=-float(pky&0x7f)/0x7f
    else:
        y=float(pky^0x7f)/0x7f
    if pkz>0x7f:
        z=-float(pkz&0x7f)/0x7f
    else:
        z=float(pkz^0x7f)/0x7f
    return (x,y,z)
Т.е. на вход функции подаем (x,y,z), а получаем packed

 

Как-то так. Надо посмотреть что там на входе когда данные теряются, и правильно ли что они теряются. И ещё интересно хранится ли что-то в 4 байте?

def packNormal_tag3(x, y, z):
    if x < 0:
        pkx = (~0x7f)^round(-x*0x7f)
    else:
        pkx = 0x00 #Данные утеряны без возвратно
    if y < 0:
        pky = (~0x7f)^round(-y*0x7f)
    else:
        pky = 0x00 #Данные утеряны без возвратно
    if z < 0:
        pkz = (~0x7f)^round(-z*0x7f)
    else:
        pkz = 0x00 #Данные утеряны без возвратно
    packed = pkz<<16 + pky<<8 + pkx
    return packed
Может код должен быть таким?

def unpackNormal_tag3(packed):
    pkz=(c_uint32(packed).value>>16)&0xFF^0xFF
    pky=(c_uint32(packed).value>>8)&0xFF^0xFF
    pkx=(c_uint32(packed).value)&0xFF^0xFF
    if pkx>0x7f:
        x=-float(pkx&0x7f)/0x7f
    else:
        x=float(pkx)/0x7f
    if pky>0x7f:
        y=-float(pky&0x7f)/0x7f
    else:
        y=float(pky)/0x7f
    if pkz>0x7f:
        z=-float(pkz&0x7f)/0x7f
    else:
        z=float(pkz)/0x7f
    return (x,y,z)
Тогда обратный вот такой:

def packNormal_tag3(x, y, z):
    if x < 0:
        pkx = (~0x7f)^round(-x*0x7f)
    else:
        pkx = round(x*0x7f)
    if y < 0:
        pky = (~0x7f)^round(-y*0x7f)
    else:
        pky = round(y*0x7f)
    if z < 0:
        pkz = (~0x7f)^round(-z*0x7f)
    else:
        pkz = round(z*0x7f)
    packed = pkz<<16 + pky<<8 + pkx
    return packed
Суть в том что в 4 байтовом целом, хранятся 3 знаковых дробных, но с 7 битовой точностью и 8-ой бит под знак.

 

Ещё интересно спросить у автора, если входной всё равно 4 байтовое, почему бы не запихать дробные с 8 битовой точностью и 9 бит под знак?

 

P.S. Вспоминается 31 декабря 8 вечера, а мы сдаём лабы по ассемблеру, весело было.

Edited by Degit22
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Вспоминается 31 декабря 8 вечера, а мы сдаём лабы по ассемблеру, весело было.

у меня примерно тоже самое

Короче я немного разобрался в проблеме.

Вся беда была из-за порядка треугольников.

картохе нужно отдавать их в порядке 2 1 0, а я отдавал как 0 1 2

 

Это решило проблему с флипом нормали, но не решило проблему с самими нормалями...

v78:

post-16296-0-50773400-1450739481_thumb.png

post-16296-0-96345600-1450751301_thumb.png

post-16296-0-81714700-1450739489_thumb.png

post-16296-0-35891100-1450739497_thumb.png

post-16296-0-47999200-1450751336_thumb.jpg

post-16296-0-09061100-1450751350_thumb.jpg

uv карта вроде норм легла

 

уже можно делать ремоделинг статичных объектов)

пока только с одной uv-картой и одним материалом, но потом...

 

 

Всё таки проблема с орудиями осталась.

Исправил в v79 с помощью выбора башен.

Довольно странно, но логично)

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
 

перебирал технику, потихоньку...обратил внимание на гусельки

                                                   блендер                                                                                                                   клиент

post-18605-0-26442100-1450760178_thumb.jpgpost-18605-0-72106400-1450760199_thumb.jpg

post-18605-0-52684200-1450760224_thumb.jpgpost-18605-0-33512400-1450760245_thumb.jpg

разную технику смотрел, одинакового отображения пока не нашёл, в клиенте "кто в лес, кто по дрова", естественно в блендере с точностью до наоборот, относительно клиента

Share this post


Link to post

Short link
Share on other sites

 

 

обратил внимание на гусельки

А я давно уже написал, что Blender не может в прозрачность.

Share this post


Link to post

Short link
Share on other sites

А я давно уже написал, что Blender не может в прозрачность.

то есть, если клиент отдаёт "монолит", то в бендере прорези будут ?

Share this post


Link to post

Short link
Share on other sites

то есть, если клиент отдаёт "монолит", то в бендере прорези будут ?

Клиент сейчас это что-то неоднородное.

На многих диффуз текстурах в танках до сих пор есть обычный альфаканал, а на HD текстурах он вообще в красном канале карты нормалей.

Ну невозможно в таких условиях работать(

 

"монолит"

? Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Клиент сейчас это что-то неоднородное.

На многих диффуз текстурах в танках до сих пор есть обычный альфаканал, а на HD текстурах он вообще в красном канале карты нормалей.

Ну невозможно в таких условиях работать(

Я еще не говорю про карту блеска...

?

про монолит, это я так...образно

я говорил...что это чудо, таких клиентов поискать

....................

но всё же я нашёл, что корректно отображает....ИС 6  , я думаю он не один

 

post-18605-0-79723300-1450764013_thumb.jpgpost-18605-0-34850700-1450764144_thumb.jpgpost-18605-0-44727800-1450764158_thumb.jpg

Share this post


Link to post

Short link
Share on other sites

я думаю он не один

это ненадолго)

Скоро и у него альфу отнимут)

таких клиентов поискать

это да, поддерживать и старые и новые технологии дело такое... Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

перебирал технику, потихоньку...обратил внимание на гусельки

блендер клиент

разную технику смотрел, одинакового отображения пока не нашёл, в клиенте "кто в лес, кто по дрова", естественно в блендере с точностью до наоборот, относительно клиента

в блендере у хд танков гусеница представлена одним объектом, а в клиенте каждое звено отдельный объект

Share this post


Link to post

Short link
Share on other sites

Кстати про гусеницы. В блендере же есть физическая эмуляция, есть идеи как гусеницам задать свойства чтобы они провисли, а не как струна были натянутые?

Share this post


Link to post

Short link
Share on other sites

.. а в клиенте каждое звено отдельный объект

да там такое наверчено, язык не поворачивается отдельным звеном назвать

посмотри ис6 и FV215...на англичанах отдельные звенья в клиенте ? и это на старом формате..."ключница водку варила"  мрак

Share this post


Link to post

Short link
Share on other sites

Кстати про гусеницы. В блендере же есть физическая эмуляция, есть идеи как гусеницам задать свойства чтобы они провисли, а не как струна были натянутые?

Да. Можно хоть анимацию с управлением и физикой сделать). Я же просил как-то отдельно траки)))

да там такое наверчено, язык не поворачивается отдельным звеном назвать

посмотри ис6 и FV215...на англичанах отдельные звенья в клиенте ? и это на старом формате..."ключница водку варила"  мрак

За всех не скажу. Чем-то смотрел. Для некоторых танков были отдельно звенья.

 

Я ж не виноват, что у них нет единого формата.

Share this post


Link to post

Short link
Share on other sites

это ненадолго)

Скоро и у него альфу отнимут)

ещё один патч откатает, должны были поменять, но пока оставили... у кв II, тоже пока нормально, траки с альфой

Да. Можно хоть анимацию с управлением и физикой сделать). Я же просил как-то отдельно траки)))

За всех не скажу. Чем-то смотрел. Для некоторых танков были отдельно звенья.

 

Я ж не виноват, что у них нет единого формата.

пальцем ткни какие...от какой техники

единый формат...да не известно когда будет, если будет вааще

===================================================

ну вот, нашёл что ломает блендер, или падает, или теряет интерфейс

новая техника, америка Т29, Т 32...открываю, материалы, редактор UV , пару кликов и безмолвно валяемся

новенькие траки, в клиенте красивые такие....

Edited by tricsi

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...