|
Xors3D Графический движок с поддержкой DirectX9 |
05.07.2011, 21:16
|
#16
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,853 пользователей)
|
Ответ: xCreateInstance
Сообщение от .Squid
...
А то сейчас, я смотрю, вы и текстуры чистите, а потом опять их накладываете - беда...
|
Не придирайся к мелочам - это всё не важно. Всё делалось исключительно ради теста. Делал наскоро чтоб тупо работало.
Значит так. По поводу xClearWorld() и xReleaseGraphics()
Прикладываю аттач с примером и скрин ошибки.
Испытывал следующие варианты:
'xClearWorld() ' Ошибка
'xClearWorld(1, 0, 1) ' так тоже
'xClearWorld(1, 0, 0) ' так работает
'xReleaseGraphics() ' тоже ошибка
__________________
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
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: xCreateInstance
Я не придираюсь.
Ты чистишь мир вместе с текстурами, а затем в цикле опять накладываешь текстуру (в переменной то адрес текстуры остался, в ноль она не сбрасывается).
С r704 твой пример работает.
__________________
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
|
|
18.08.2012, 23:02
|
#18
|
Разработчик
Регистрация: 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
FPS: 61 TrisRendered: 111132 DIP calls: 1
shaderEmul
FPS: 16 TrisRendered: 444528 DIP calls: 374
withoutShader
FPS: 5 TrisRendered: 1000188 DIP calls: 564
FackingCopyEntity
FPS: 3 TrisRendered: 1778112 DIP calls: 37796
И хочу попросить исходник, очень хочется на код глянуть и разобраться как этим пользоваться
__________________
|
(Offline)
|
|
18.08.2012, 23:17
|
#19
|
Разработчик
Регистрация: 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
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: xCreateInstance
Посмотри в стандартных примерах, как это делать.
xEntityFX sp,HWIFX так не применишь эффект к объекту.
Надо так xSetEntityEffect sp, HWIFX
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.08.2012, 11:40
|
#21
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: xCreateInstance
Сообщение от burovalex
Я накидал, но я пока плохо разбираюсь в шейдерах эффектах.., и меши у меня просто исчезают
|
На кокой конфигурации компьютера делаешь?
Хардвэрный инстенсинг не все видяхи держат.
|
(Offline)
|
|
19.08.2012, 20:56
|
#22
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: xCreateInstance
Спасибо Phyton! Всё заработало!
Вот только разница в фпс не большая
вывел 10к сфер 16-го порядка
CopyEntity - 20 fps
Instancing - 30 fps
Можно ли на сферы сделать один сурфейс??
Повертексно создавая меш, я научился односурфейсные меши лепить, а вот на загружаемые меши не знаю как..
__________________
|
(Offline)
|
|
19.08.2012, 21:04
|
#23
|
Разработчик
Регистрация: 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
|
Разработчик
Регистрация: 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
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: xCreateInstance
у тебя сколько треугольников выводится? сколько треугольников на сферу? так-то чем меньше трисов - тем больше эффекта от инстансинга.
|
(Offline)
|
|
20.08.2012, 19:18
|
#26
|
Разработчик
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений (для 565 пользователей)
|
Ответ: xCreateInstance
burovalex Еще раз спрашиваю! Какая у тебя конфигурация ПК? возможно проблема не в инстансиге, а в твоем компе...
посмотри еще раз как в примерах сделано, у тебя где то косяк в коде это точно...
Опиши задачу для чего тебе нужен инстансинг? лес да пожалуйста, стандартный пример ксорса.
На фпс не бросаться пример без оптимизаций!!!
Последний раз редактировалось FREE MAN, 21.12.2019 в 14:48.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.08.2012, 20:18
|
#27
|
Разработчик
Регистрация: 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
|
Разработчик
Регистрация: 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
|
Разработчик
Регистрация: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.08.2012, 21:00
|
#30
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: xCreateInstance
Спасибо! Буду качать, хотя вроде тоже с офсайта качал..
Рассмотрю подробнее примеры!
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:42.
|