Reforged
Столкнулся с проблемой связанной с Image. При малом угле камеры по отношению к Image появляются артефакты. Сейчас готовил изображения с помощью paint.net, формат dds (dxt5, генерация текстуры), прозрачная рамка 1px. Как избавиться или хотя бы минимизировать артефакты?
PS:
первое изображение - HD, видно только стыки изображений
второе и третье - SD с разными углами камеры

Прикрепляю блп. Видимых проблем нет.

Nelloy, создавай через CreateUbersplat(x, 0, 'Adrt', 255, 255, 255, 255, true, true)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
33
у меня во всех графиках как на 2 и 3 скрине. Даже если я использую дефолт images из варкрафта, Я в адмирале крайне с этим попарился, работает хорошо лишь при стандартном улге камеры и полностью ровном рельефе, аретефаты появляются даже если images 1 пиксель. Даже если имагешь 100% прозрачный, к сожалениею пришлось отказаться от этого и полностью перейти на эффекты и забыть об огибании рельефа, который давали images.
13
Bergi_Bear, эх, задумка была именно обойти ограничение SetTerrainType с их помощью. Если не предложат чего-то стоящего, придется делать так как есть и тупо лочить камеру.
33
Тебе максимум предложат делать это на другом движке, обзывая варкрафт убогим
28
Как создаются изображения? Что за картинка изображений используется?
13
PT153, вытащил из Casc архива атлас текстур Ashenvale_Dirt. Открыл в paint.net, Скопировал часть из атласа 64х64 и вставил в д новый файл 64х64. Удалил рамку в 1px (0 opacity). Сохранил в формате DXT5 sRGB с параметрами оптимизация сжатия оценочная, генерация текстур бикубический метод.

Vlod, Что-то ловлю краши при создании больше одного ubersplat, а тот что создается не отображается
    let x = 0
    let t = new hTimer()
    t.addAction(()=>{
        let u = CreateUbersplat(x, 0, 'Adrt', 255, 255, 255, 255, false, false)
        SetUbersplatRenderAlways(u, true)
        x += 128
    })
    t.start(1, true)
28
Nelloy, сделай тоже самое в 1.26 и проверь. У меня карта с 1.26 на рефе таких проблем не имеет.
33
PT153, может ты просто не проверял, если ты про висп ТД, кто будет в здравом у мне в тдшке наклонять камеру, это не зачем, или у тебя плоский рельеф. Если не сложно скинь свой сплат, я знаю вот ещё одну фишку, весьма зависит количества прозрачного отступа по краям. Может в blp в этот момент что-то нормально растыгивается, а тут у ддс всё плывёт
28
Прикрепляю блп. Видимых проблем нет.

Nelloy, создавай через CreateUbersplat(x, 0, 'Adrt', 255, 255, 255, 255, true, true)
Загруженные файлы
Принятый ответ
13
PT153, аналогично ловлю краш.
В итоге получил не совсем то что хотел но для моих нужд, должно хватить. Если image наползают друг на друга - получает черные полосы на стыках, если не доходят - светло голубые
Изображение 128x128, заполнена центральная часть 64х64, DXT5
Загруженные файлы
28
Nelloy, сделай размер изображений больше, просто всё лишнее сделай прозрачным.

аналогично ловлю краш
Потому что сплата Adrt нет. Нужно их добавить в карту вот так.
13
Bergi_Bear, нашел способ на 99% избавиться от проблемы. Для изображения 64х64 делаю новую картинку с 2 слоями. Фоновый цвет удаляю. В одном слое ставлю по центру нужное изображение, в другом слое то же самое изображение только увеличиваю до 126х126 и 1 альфа канала.
Загруженные файлы
33
Nelloy, какой кошмар, а ддску приложи ещё если не сложно. Может вернусь в маркеры сплаты, если вот так вот да получается
27
блин а я хотел маркеры использовать image. Не могу понять при чем тут артефакты, и проблему не понимаю, и о чем обсуждаете. это проблемы из-за горки?
и откуда швы? вроде швы легко устранить. А что произойдет, если images наложить друг на друга.
28
Что-то треш способ.
Я просто с каждой стороны добавил по пикселю и полос нет.
раскрыть
На поворотах тоже проблем нет. Есть только один артефакт.
раскрыть
33
PT153, а не в blp ли ты? насчет пикселя я вот лично знал, но опять таки ты на плоском рефльефе. Не вижу неровностей или клифов
13
PT153, суть в том что с этой рамкой творится какая-то дичь
Bergi_Bear, сохранил в формате paint.net, с сохранением слоев и в dds
Загруженные файлы
28
Bergi_Bear, карту в руки и проверяй. А ТСа тоже есть стыки на плоском рельефе и у него какие-то проблемы. Это либо из-за плохого ддс, либо из-за того, что нет лишних пикселей.

Ну добавил неровности, проблем с полосами всё также нет, есть только неверное огибание рельефа.
раскрыть

Конвертировал .tga в .dds с помощью XnView, ничего не изменилось.
Загруженные файлы
13
Неоптимальное, но быстрое решение для нарезки атласов с тайлами:
from PIL import Image
from wand import image
import os

IN_W = 256
IN_H = 256
OUT_W = 128
OUT_H = 128

dir = './HD/Ruins/dirt/'
atlas = Image.open(dir + 'ruins_dirt_diffuse.dds')
print(dir)

max_x = int(atlas.size[0] / IN_W)
max_y = int(atlas.size[1] / IN_H)

for x in range(max_x):
    for y in range(max_y):
        croped = atlas.crop((x * IN_W, y * IN_H, (x + 1) * IN_W, (y + 1) * IN_H))
        croped_back = croped.resize((OUT_W - 2, OUT_H - 2))
        croped_back.putalpha(1)

        im = Image.new('RGBA', (OUT_W, OUT_H), 0)
        im.paste(croped_back, (1, 1))
        im.paste(croped.resize((int(OUT_W / 2), int(OUT_H / 2))), (int(OUT_W / 4), int(OUT_H / 4)))
        path = dir + '%02dx%02d.tga' % (x, y)
        im.save(path)

        dds = image.Image(filename=path)
        dds.compression = 'dxt5'
        dds.save(filename=dir + '%02dx%02d.dds' % (x, y))

        os.remove(path)
28
Nelloy, залил бы на хостинг какой-нибудь, типа repl.it. Да и рассказал бы, что скрипт делает, не все питон используют.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.