Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 26.09.2012, 12:54   #31
Andrew_00001
AnyKey`щик
 
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: xCreateInstance

Ребят, а где можно почитать о том, что такое Instance ?
В официальной справке команда xCreateInstance отсутствует.
Запрос в Яндексе "xCreateInstance" выдает аж 4(четыре) ответа. Гугл немножко больше, но инфы там ноль. По форуму все как-то вскользь.
(Offline)
 
Ответить с цитированием
Старый 26.09.2012, 16:59   #32
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: xCreateInstance

я думаю автору интересны не теоретические подробности реализации инстансинга, а то, как с ним работать в Хорсе. Вообще, имхо, хорс очень простой движок, и по листингам выше итак все должно быть понятно.

насколько я понимаю, достаточно вместо хCopyEntity писать xCreateInstance
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 01:07   #34
Andrew_00001
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
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: xCreateInstance

Сообщение от Andrew_00001 Посмотреть сообщение
Может кто намекнет, в каком направлении копать.
создаю к примеру 10 000 спрайтов
Это уже не правильно. Надо создавать только вокруг игрока/камеры траву в определенном радиусе.
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 01:20   #36
Andrew_00001
AnyKey`щик
 
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: xCreateInstance

Сообщение от Nex Посмотреть сообщение
Это уже не правильно. Надо создавать только вокруг игрока/камеры траву в определенном радиусе.
Да-да, я это уже читал где-то на форуме, просто сейчас экспериментирую, чтобы пощупать возможности сорса-компа и понять на что можно расчитывать. Все-таки несколько тысяч высококачественных спрайтов травы шикарно выглядят! но, увы, неиграбельны, а вот с помощью инстансов вижу, можно сделать их играбельными.
Так все таки не подскажите по поводу спрайтов и инстансов?
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 02:19   #37
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: xCreateInstance

ты можешь делать не спрайт, а просто сюрфейс квада. и ориентировать их на камеру в шейдере инстансинга.
но, кончено, такие вещт лучше как то печь в один сюрфейс.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andrew_00001 (27.09.2012)
Старый 27.09.2012, 03:45   #38
Andrew_00001
AnyKey`щик
 
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: xCreateInstance

Сообщение от HolyDel Посмотреть сообщение
ты можешь делать не спрайт, а просто сюрфейс квада. и ориентировать их на камеру в шейдере инстансинга.
но, кончено, такие вещт лучше как то печь в один сюрфейс.
ОГО!
Делал 1000 спрайтов и 1000 сюрфейсов с одинаковыми текстурами.
Счёт по FPS:
Спрайты - 18.
Сюрфейсы - 94!
Правда еще не прикрутил поворот.
Два вопроса:
1. Как сделать сюрфейс прозрачным ? Перепробовал все команды, что влияют на альфу сюрфейса из оф.доки - ничего не берет - белый и все тут? (может кстати это и причина высокого ФПС).
2. При выходе из проги с сюрфейсами виндовз выдает ошибку, может их как-то из памяти удалять нужно?
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 03:53   #39
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: xCreateInstance

Делал 1000 спрайтов и 1000 сюрфейсов с одинаковыми текстурами.
Лучше 1к квадов на 1 сюрфейс. Фпс будет еще лучше.
Как сделать сюрфейс прозрачным ?
Грузи текстуру с альфа каналом и загружай с флагами "1+2"
При выходе из проги с сюрфейсами виндовз выдает ошибку
У тебя где то в коде косяк.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andrew_00001 (27.09.2012)
Старый 27.09.2012, 04:24   #40
Andrew_00001
AnyKey`щик
 
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: xCreateInstance

Сообщение от Nex Посмотреть сообщение
Лучше 1к квадов на 1 сюрфейс. Фпс будет еще лучше.

Грузи текстуру с альфа каналом и загружай с флагами "1+2"

У тебя где то в коде косяк.
Спасибо за подсказку. Как и ожидалось ФПС с включением альфы упало до 20. Прикручу поворот будут как раз самые 18, что и у спрайтов. Движок их видимо реализует одним и тем же способом.
Я не совсем понял, точнее совсем не понял), как это "1000 квадов на 1 сюрфейс" ? что это за сюрфейс и как он должен располагаться?
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 04:30   #41
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: xCreateInstance

Квад это два треугольника. Получется тот же спрайт.
Создаешь меш и один сюрфейс и в сюрфейсе создаешь уже квады.
Вот пример который я как то выкладывал. Ссылка
Минус в том что тяжеловато манипулировать кучей квадов на одном сюрфейсе. Инстансингом не пользовался, но уверен, что его использовать будет лучше.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andrew_00001 (27.09.2012)
Старый 27.09.2012, 09:52   #42
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: xCreateInstance

у тебя 1000 сюрфейсов? 1000 ентити? - это все равно много.

тебе нужен 1 сюрфейс из 2000 вершин. по 2 на травинку.
инстансинг скорее-всего будет медленнее, чем синглсюрфей из-за накладываемого движком оверхеда на обработку ентити, хотя хз как это реализовано.
с альфой будут траблы, ибо спрайты надо сортировать от дальнего к ближнему, иначе будут косяки. можно попробовать маску.

и что за машина такая, если фпс падает от 94 до 20 при включенной альфе?
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 14:07   #43
Andrew_00001
AnyKey`щик
 
Регистрация: 22.09.2012
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: xCreateInstance

Сообщение от Nex Посмотреть сообщение
Квад это два треугольника. Получется тот же спрайт.
Создаешь меш и один сюрфейс и в сюрфейсе создаешь уже квады.
Вот пример который я как то выкладывал. Ссылка
Минус в том что тяжеловато манипулировать кучей квадов на одном сюрфейсе. Инстансингом не пользовался, но уверен, что его использовать будет лучше.
Пример интересный, вроде бы все понятно, но ума не приложу как это можно применить к траве на террайне, он ведь не плоский
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 16:37   #44
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: xCreateInstance

Сообщение от Andrew_00001 Посмотреть сообщение
Пример интересный, вроде бы все понятно, но ума не приложу как это можно применить к траве на террайне, он ведь не плоский
В примере я квады использую как частицы (камера смотрит с верху и квады движутся только по двум плоскостям). Посути это теже самые спрайты. Создавай их над землей вокруг игрока и все.
И еще самый большой минус, что через команду нельзя взять и удалить 1 квад. Для удаления надо копировать все вертексы, удалить не нужные и перезаписывать сюрфейс.
(Offline)
 
Ответить с цитированием
Старый 27.09.2012, 19:50   #45
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: xCreateInstance

Сообщение от Nex Посмотреть сообщение
И еще самый большой минус, что через команду нельзя взять и удалить 1 квад. Для удаления надо копировать все вертексы, удалить не нужные и перезаписывать сюрфейс.
Вообще при большом желании можно сложить в точку этот ненужный квад.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
ANIK123 (28.09.2012), HolyDel (28.09.2012), Nex (27.09.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com