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

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

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

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

Ответ
 
Опции темы
Старый 05.07.2011, 21:16   #16
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: xCreateInstance

Сообщение от .Squid Посмотреть сообщение
...
А то сейчас, я смотрю, вы и текстуры чистите, а потом опять их накладываете - беда...
Не придирайся к мелочам - это всё не важно. Всё делалось исключительно ради теста. Делал наскоро чтоб тупо работало.

Значит так. По поводу xClearWorld() и xReleaseGraphics()
Прикладываю аттач с примером и скрин ошибки.
Испытывал следующие варианты:
'xClearWorld() ' Ошибка
'xClearWorld(1, 0, 1) ' так тоже
'xClearWorld(1, 0, 0) ' так работает
'xReleaseGraphics() ' тоже ошибка
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 769
Размер:	20.5 Кб
ID:	14291  
Вложения
Тип файла: 7z tests.7z (1.36 Мб, 370 просмотров)
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 06.07.2011, 02:12   #17
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: xCreateInstance

Я не придираюсь.
Ты чистишь мир вместе с текстурами, а затем в цикле опять накладываешь текстуру (в переменной то адрес текстуры остался, в ноль она не сбрасывается).

С r704 твой пример работает.
__________________

(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
Dream (06.07.2011), HolyDel (06.07.2011), Randomize (06.07.2011)
Старый 18.08.2012, 23:02   #18
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

Вообще понравился пример!!! Супер!
Такая разница колосальная!!

Xors3d Engine version: 1.15.688.0 ( May 07 2011 )
OS: Microsoft Windows 7
4 CPUs: Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz at 2128MHz (MMX, SSE, SSE2, SSE3)
RAM: 1908 MBytes. Paged memory: 3816 MBytes.
ATI Mobility Radeon HD 5730. VRAM: 1016 MBytes.

HWI
FPS61
TrisRendered
111132
DIP calls

shaderEmul
FPS16
TrisRendered
444528
DIP calls
374 
withoutShader
FPS5
TrisRendered
1000188
DIP calls
564 
FackingCopyEntity
FPS3
TrisRendered
1778112
DIP calls
37796 
И хочу попросить исходник, очень хочется на код глянуть и разобраться как этим пользоваться
__________________
(Offline)
 
Ответить с цитированием
Старый 18.08.2012, 23:17   #19
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

Я накидал, но я пока плохо разбираюсь в шейдерах эффектах.., и меши у меня просто исчезают

Include "xors3d.bb"
xGraphics3D 800,600,32,1,1

camera = xCreateCamera()
xPositionEntity camera, 0,2,-20

light = xCreateLight()

Global sp=xCreateSphere(16)
tx=xLoadTexture("accept.png")
xEntityTexture sp,tx
Global HWIFX=xLoadFXFile("hwinstancing.fx")
xEntityFX sp,HWIFX
xSetEffectTechnique sp, "Instancing"
xSetEffectMatrixSemantic sp,"MatViewProj",WORLDVIEWPROJ
xSetEffectMatrixSemantic sp,"MatWorld",WORLD

Dim c(10000)
For i=1 To 10000
c(i)=xCreateInstance(sp)
xPositionEntity c(i),Rnd(-3,3),Rnd(0,0.5),Rnd(-3,3)
Next

Global frame, xframe, time
xframe=xMillisecs()-1
While Not xKeyHit(1)
frame=xMillisecs()
xRenderWorld()


xText 5,5,time
xFlip

time=1000/(frame-xframe)
xframe=frame
Wend
End
__________________
(Offline)
 
Ответить с цитированием
Старый 19.08.2012, 00:05   #20
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

Посмотри в стандартных примерах, как это делать.
xEntityFX sp,HWIFX так не применишь эффект к объекту.
Надо так xSetEntityEffect sp, HWIFX
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (19.08.2012)
Старый 19.08.2012, 11:40   #21
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

Сообщение от burovalex Посмотреть сообщение
Я накидал, но я пока плохо разбираюсь в шейдерах эффектах.., и меши у меня просто исчезают
На кокой конфигурации компьютера делаешь?
Хардвэрный инстенсинг не все видяхи держат.
(Offline)
 
Ответить с цитированием
Старый 19.08.2012, 20:56   #22
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

Спасибо Phyton! Всё заработало!
Вот только разница в фпс не большая
вывел 10к сфер 16-го порядка
CopyEntity - 20 fps
Instancing - 30 fps

Можно ли на сферы сделать один сурфейс??

Повертексно создавая меш, я научился односурфейсные меши лепить, а вот на загружаемые меши не знаю как..
__________________
(Offline)
 
Ответить с цитированием
Старый 19.08.2012, 21:04   #23
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

Сообщение от burovalex Посмотреть сообщение
Спасибо Phyton! Всё заработало!
Вот только разница в фпс не большая
вывел 10к сфер 16-го порядка
CopyEntity - 20 fps
Instancing - 30 fps

Можно ли на сферы сделать один сурфейс??

Повертексно создавая меш, я научился односурфейсные меши лепить, а вот на загружаемые меши не знаю как..
Эээ, ты чего так за махнул та! 10К сфер это перебор, лучше делать на один инстанс примерно на 200 объектов, думаю так лучше будет.
(Offline)
 
Ответить с цитированием
Старый 19.08.2012, 22:48   #24
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

ну хз, лучше не стало, (может не правильно) переделал так:

Global sp=xCreateSphere(16)
tx=xLoadTexture("accept.png")
xEntityTexture sp,tx
Global HWIFX=xLoadFXFile("hwinstancing.fx")
xSetEntityEffect sp,HWIFX
xSetEffectTechnique sp, "Instancing"
xSetEffectMatrixSemantic sp,"MatViewProj",WORLDVIEWPROJ
xSetEffectMatrixSemantic sp,"MatWorld",WORLD
xHideEntity sp

Dim c(10000)
Dim s(500)
For y=0 To 90
s(y)=xCopyEntity(sp)
xHideEntity s(y)
	For i=1 To 100
	c(i*y)=xCreateInstance(s(y))
	xPositionEntity c(i*y),Rnd(-3,3),Rnd(0,0.5),Rnd(-3,3)
	xScaleEntity c(i*y),0.1,0.1,0.1
	xShowEntity c(i*y)
	Next
Next
Получилось 9к сфер, а фпс 26
__________________
(Offline)
 
Ответить с цитированием
Старый 20.08.2012, 18:07   #25
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: xCreateInstance

у тебя сколько треугольников выводится? сколько треугольников на сферу? так-то чем меньше трисов - тем больше эффекта от инстансинга.
(Offline)
 
Ответить с цитированием
Старый 20.08.2012, 19:18   #26
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

burovalex Еще раз спрашиваю! Какая у тебя конфигурация ПК? возможно проблема не в инстансиге, а в твоем компе...
посмотри еще раз как в примерах сделано, у тебя где то косяк в коде это точно...
Опиши задачу для чего тебе нужен инстансинг? лес да пожалуйста, стандартный пример ксорса.
На фпс не бросаться пример без оптимизаций!!!

Последний раз редактировалось FREE MAN, 21.12.2019 в 14:48.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Жека (21.08.2012)
Старый 20.08.2012, 20:18   #27
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

Сообщение от burovalex Посмотреть сообщение
ну хз, лучше не стало, (может не правильно) переделал так:

Global sp=xCreateSphere(16)
tx=xLoadTexture("accept.png")
xEntityTexture sp,tx
Global HWIFX=xLoadFXFile("hwinstancing.fx")
xSetEntityEffect sp,HWIFX
xSetEffectTechnique sp, "Instancing"
xSetEffectMatrixSemantic sp,"MatViewProj",WORLDVIEWPROJ
xSetEffectMatrixSemantic sp,"MatWorld",WORLD
xHideEntity sp

Dim c(10000)
Dim s(500)
For y=0 To 90
s(y)=xCopyEntity(sp)
xHideEntity s(y)
	For i=1 To 100
	c(i*y)=xCreateInstance(s(y))
	xPositionEntity c(i*y),Rnd(-3,3),Rnd(0,0.5),Rnd(-3,3)
	xScaleEntity c(i*y),0.1,0.1,0.1
	xShowEntity c(i*y)
	Next
Next
Получилось 9к сфер, а фпс 26
Сделай проще, должно работать.

amount = 100
For i = 0 To amount
copy_entity = xCreateInstance(entity)
x# = Rand(0, 1500)
z# = Rand(0, 1500)
xPositionEntity copy, x, 0, z
Next
(Offline)
 
Ответить с цитированием
Старый 20.08.2012, 21:50   #28
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

Я же выше участвовал в тесте.
120к треугольников. Я подставил кубики.
Но все равно разница с топовым тестом очень большая.
У него 61 фпс выдает, а у меня 40-43

Xors3d Engine version: 1.15.688.0 ( May 07 2011 )
OS: Microsoft Windows 7
4 CPUs: Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz at 2128MHz (MMX, SSE, SSE2, SSE3)
RAM: 1908 MBytes. Paged memory: 3816 MBytes.
ATI Mobility Radeon HD 5730. VRAM: 1016 MBytes.
__________________
(Offline)
 
Ответить с цитированием
Старый 20.08.2012, 22:11   #29
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: xCreateInstance

Сообщение от burovalex Посмотреть сообщение
Я же выше участвовал в тесте.
120к треугольников. Я подставил кубики.
Но все равно разница с топовым тестом очень большая.
У него 61 фпс выдает, а у меня 40-43

Xors3d Engine version: 1.15.688.0 ( May 07 2011 )
OS: Microsoft Windows 7
4 CPUs: Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz at 2128MHz (MMX, SSE, SSE2, SSE3)
RAM: 1908 MBytes. Paged memory: 3816 MBytes.
ATI Mobility Radeon HD 5730. VRAM: 1016 MBytes.
А стандартные примеры инстансинга сколько выдают фпс?
Да и еще почему у тебя стоит старая версия 688? поставь 750, скачай с официального сайта ксорса триалку там в новой версии есть интересные примеры... у меня 80 фпс выдает без проблем!

Последний раз редактировалось FREE MAN, 04.03.2013 в 00:10.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (21.08.2012)
Старый 21.08.2012, 21:00   #30
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: xCreateInstance

Спасибо! Буду качать, хотя вроде тоже с офсайта качал..
Рассмотрю подробнее примеры!
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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