|
Xors3D Графический движок с поддержкой DirectX9 |
26.09.2012, 12:54
|
#31
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
Ребят, а где можно почитать о том, что такое Instance ?
В официальной справке команда xCreateInstance отсутствует.
Запрос в Яндексе "xCreateInstance" выдает аж 4(четыре) ответа. Гугл немножко больше, но инфы там ноль. По форуму все как-то вскользь.
|
(Offline)
|
|
26.09.2012, 16:59
|
#32
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: xCreateInstance
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
26.09.2012, 17:08
|
#33
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: xCreateInstance
я думаю автору интересны не теоретические подробности реализации инстансинга, а то, как с ним работать в Хорсе. Вообще, имхо, хорс очень простой движок, и по листингам выше итак все должно быть понятно.
насколько я понимаю, достаточно вместо хCopyEntity писать xCreateInstance
|
(Offline)
|
|
27.09.2012, 01:07
|
#34
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
А xCreateInstance работает со спрайтами?
Воюю сейчас с травой, создаю к примеру 10 000 спрайтов (через копиЭнтити). FPS - около 8.
Пытаюсь сделать через xCreateInstance - ничего не отображается.
Делаю 10 000 кубов через xCreateInstance FPS - около 18.
С использованием xHWInstancingAvailable() FPS - около 30. (файл шейдера спёр из сэмпла Instancing.
И вот пытаюсь ответить на такие вопросы:
1. xCreateInstance работает со спрайтами? если да, то как?
2. Что за штука такая чудесная - xHWInstancingAvailable() (я понял конечно, что аппартное ускорение инстанса, но как ее использовать, нужно ли писать для каждого конкретного случая свой файл шейдеров или есть какие-то заготовки) ?
Может кто намекнет, в каком направлении копать.
|
(Offline)
|
|
27.09.2012, 01:14
|
#35
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: xCreateInstance
Сообщение от Andrew_00001
Может кто намекнет, в каком направлении копать.
|
создаю к примеру 10 000 спрайтов
|
Это уже не правильно. Надо создавать только вокруг игрока/камеры траву в определенном радиусе.
|
(Offline)
|
|
27.09.2012, 01:20
|
#36
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
Сообщение от Nex
Это уже не правильно. Надо создавать только вокруг игрока/камеры траву в определенном радиусе.
|
Да-да, я это уже читал где-то на форуме, просто сейчас экспериментирую, чтобы пощупать возможности сорса-компа и понять на что можно расчитывать. Все-таки несколько тысяч высококачественных спрайтов травы шикарно выглядят! но, увы, неиграбельны, а вот с помощью инстансов вижу, можно сделать их играбельными.
Так все таки не подскажите по поводу спрайтов и инстансов?
|
(Offline)
|
|
27.09.2012, 02:19
|
#37
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: xCreateInstance
ты можешь делать не спрайт, а просто сюрфейс квада. и ориентировать их на камеру в шейдере инстансинга.
но, кончено, такие вещт лучше как то печь в один сюрфейс.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.09.2012, 03:45
|
#38
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
Сообщение от HolyDel
ты можешь делать не спрайт, а просто сюрфейс квада. и ориентировать их на камеру в шейдере инстансинга.
но, кончено, такие вещт лучше как то печь в один сюрфейс.
|
ОГО!
Делал 1000 спрайтов и 1000 сюрфейсов с одинаковыми текстурами.
Счёт по FPS:
Спрайты - 18.
Сюрфейсы - 94!
Правда еще не прикрутил поворот.
Два вопроса:
1. Как сделать сюрфейс прозрачным ? Перепробовал все команды, что влияют на альфу сюрфейса из оф.доки - ничего не берет - белый и все тут? (может кстати это и причина высокого ФПС).
2. При выходе из проги с сюрфейсами виндовз выдает ошибку, может их как-то из памяти удалять нужно?
|
(Offline)
|
|
27.09.2012, 03:53
|
#39
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: xCreateInstance
Делал 1000 спрайтов и 1000 сюрфейсов с одинаковыми текстурами.
|
Лучше 1к квадов на 1 сюрфейс. Фпс будет еще лучше.
Как сделать сюрфейс прозрачным ?
|
Грузи текстуру с альфа каналом и загружай с флагами "1+2"
При выходе из проги с сюрфейсами виндовз выдает ошибку
|
У тебя где то в коде косяк.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.09.2012, 04:24
|
#40
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
Сообщение от Nex
Лучше 1к квадов на 1 сюрфейс. Фпс будет еще лучше.
Грузи текстуру с альфа каналом и загружай с флагами "1+2"
У тебя где то в коде косяк.
|
Спасибо за подсказку. Как и ожидалось ФПС с включением альфы упало до 20. Прикручу поворот будут как раз самые 18, что и у спрайтов. Движок их видимо реализует одним и тем же способом.
Я не совсем понял, точнее совсем не понял ), как это "1000 квадов на 1 сюрфейс" ? что это за сюрфейс и как он должен располагаться?
|
(Offline)
|
|
27.09.2012, 04:30
|
#41
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: xCreateInstance
Квад это два треугольника. Получется тот же спрайт.
Создаешь меш и один сюрфейс и в сюрфейсе создаешь уже квады.
Вот пример который я как то выкладывал. Ссылка
Минус в том что тяжеловато манипулировать кучей квадов на одном сюрфейсе. Инстансингом не пользовался, но уверен, что его использовать будет лучше.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.09.2012, 09:52
|
#42
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: xCreateInstance
у тебя 1000 сюрфейсов? 1000 ентити? - это все равно много.
тебе нужен 1 сюрфейс из 2000 вершин. по 2 на травинку.
инстансинг скорее-всего будет медленнее, чем синглсюрфей из-за накладываемого движком оверхеда на обработку ентити, хотя хз как это реализовано.
с альфой будут траблы, ибо спрайты надо сортировать от дальнего к ближнему, иначе будут косяки. можно попробовать маску.
и что за машина такая, если фпс падает от 94 до 20 при включенной альфе?
|
(Offline)
|
|
27.09.2012, 14:07
|
#43
|
AnyKey`щик
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: xCreateInstance
Сообщение от Nex
Квад это два треугольника. Получется тот же спрайт.
Создаешь меш и один сюрфейс и в сюрфейсе создаешь уже квады.
Вот пример который я как то выкладывал. Ссылка
Минус в том что тяжеловато манипулировать кучей квадов на одном сюрфейсе. Инстансингом не пользовался, но уверен, что его использовать будет лучше.
|
Пример интересный, вроде бы все понятно, но ума не приложу как это можно применить к траве на террайне, он ведь не плоский
|
(Offline)
|
|
27.09.2012, 16:37
|
#44
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: xCreateInstance
Сообщение от Andrew_00001
Пример интересный, вроде бы все понятно, но ума не приложу как это можно применить к траве на террайне, он ведь не плоский
|
В примере я квады использую как частицы (камера смотрит с верху и квады движутся только по двум плоскостям). Посути это теже самые спрайты. Создавай их над землей вокруг игрока и все.
И еще самый большой минус, что через команду нельзя взять и удалить 1 квад. Для удаления надо копировать все вертексы, удалить не нужные и перезаписывать сюрфейс.
|
(Offline)
|
|
27.09.2012, 19:50
|
#45
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: xCreateInstance
Сообщение от Nex
И еще самый большой минус, что через команду нельзя взять и удалить 1 квад. Для удаления надо копировать все вертексы, удалить не нужные и перезаписывать сюрфейс.
|
Вообще при большом желании можно сложить в точку этот ненужный квад.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:34.
|