Войти
ПрограммированиеФорумГрафика

D3D9-Вопросы. Device.SetGammaRamp() (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#90
19:55, 13 апр. 2019

Хаус
Тот единственный пост я уже удалил, причём давно.


#91
(Правка: 20:31) 20:30, 13 апр. 2019

Зачем вы вообще отвечаете человеку, который не может нагуглить ответы на эти заезженные вопросы? Да ещё и который грубит

#92
20:54, 13 апр. 2019

maks242
Обычно это потом переливается во всеобщее заклевывание.

#93
14:39, 14 апр. 2019

alexey.ch
> Это что-то новенькое. Managed DirectX?
Это было всегда и в Managed DirectX и в SharpDX.

Вот выдержки из описаний соответствующих элементов в SharpDX:

Direct3D9.FX

Flags that determines if state modified by an effect is saved and restored. The default value 0 specifies that SharpDX.Direct3D9.Effect.Begin and SharpDX.Direct3D9.Effect.End will save and restore all state modified by the effect (including pixel and vertex shader constants). Valid flags can be seen at Effect State Save and Restore Flags.

Direct3D9.Effect.Begin

An application sets one active technique in the effect system by calling SharpDX.Direct3D9.Effect.Begin. The effect system responds by capturing all the pipeline state that can be changed by the technique in a state block. An application signals the end of a technique by calling SharpDX.Direct3D9.Effect.End, which uses the state block to restore the original state. The effect system, therefore, takes care of saving state when a technique becomes active and restoring state when a technique ends. If you choose to disable this save and restore functionality, see SharpDX.Direct3D9.FX.DoNotSaveSamplerState.Within the SharpDX.Direct3D9.Effect.Begin and SharpDX.Direct3D9.Effect.End pair, an application uses SharpDX.Direct3D9.Effect.BeginPass(System.Int32) to set the active pass, SharpDX.Direct3D9.Effect.CommitChanges if any state changes occurred after the pass was activated, and SharpDX.Direct3D9.Effect.EndPass to end the active pass.

Direct3D9.Effect.End

All rendering in an effect is done within a matching pair of SharpDX.Direct3D9.Effect.Begin and SharpDX.Direct3D9.Effect.End calls. After all passes are rendered, SharpDX.Direct3D9.Effect.End must be called to end the active technique. The effect system responds by using the state block created when SharpDX.Direct3D9.Effect.Begin was called, to automatically restore the pipeline state before SharpDX.Direct3D9.Effect.Begin.By default, the effect system takes care of saving state prior to a technique, and restoring state after a technique. If you choose to disable this save and restore functionality, see SharpDX.Direct3D9.FX.DoNotSaveSamplerState.

Direct3D9.Effect.BeginPass

An application sets one active pass (within one active technique) in the effect system by calling SharpDX.Direct3D9.Effect.BeginPass(System.Int32). An application signals the end of the active pass by calling SharpDX.Direct3D9.Effect.EndPass. SharpDX.Direct3D9.Effect.BeginPass(System.Int32) and SharpDX.Direct3D9.Effect.EndPass must occur in a matching pair, within a matching pair of SharpDX.Direct3D9.Effect.Begin and SharpDX.Direct3D9.Effect.End calls.If the application changes any effect state using any of the Effect::Setx methods inside of a SharpDX.Direct3D9.Effect.BeginPass(System.Int32)/SharpDX.Direct3D9.Effect.EndPass matching pair, the application must call SharpDX.Direct3D9.Effect.CommitChanges to set the update the device with the state changes. If no state changes occur within a SharpDX.Direct3D9.Effect.BeginPass(System.Int32) and SharpDX.Direct3D9.Effect.EndPass matching pair, it is not necessary to call SharpDX.Direct3D9.Effect.CommitChanges.

Direct3D9.Effect.EndPass

An application signals the end of rendering an active pass by calling SharpDX.Direct3D9.Effect.EndPass. Each SharpDX.Direct3D9.Effect.EndPass must be part of a matching pair of SharpDX.Direct3D9.Effect.BeginPass(System.Int32) and SharpDX.Direct3D9.Effect.EndPass calls.Each matching pair of SharpDX.Direct3D9.Effect.BeginPass(System.Int32) and SharpDX.Direct3D9.Effect.EndPass calls must be located within a matching pair of SharpDX.Direct3D9.Effect.Begin and SharpDX.Direct3D9.Effect.End calls.If the application changes any effect state using any of the Effect::Setx methods inside of a SharpDX.Direct3D9.Effect.BeginPass(System.Int32)/SharpDX.Direct3D9.Effect.EndPass matching pair, the application must call SharpDX.Direct3D9.Effect.CommitChanges before any DrawxPrimitive call to propagate state changes to the device before rendering.

_________________________

Я думаю, что наконец развеял все подозрения о том что эффекты медленнее. Ещё раз повторю, если всё правильно выставлено и настроено в совокупности с примером, что я привёл ранее, эффекты полностью оправдывают своё существование.

#94
(Правка: 14:53) 14:50, 14 апр. 2019

DODge
> SharpDX
С этой штукой я тоже не работал :)

Да, в нативном DX SDK тоже есть эти флаги, я просто о них забыл.
https://docs.microsoft.com/en-us/windows/desktop/direct3d9/d3dxfx
Таки больше 10 лет прошло :)

ОК. Оптимизации есть.

Однако использование эффектов - это мелочь в сравнении с затратами на маршалинг вызовов из дотнена в нативку. Еще большей производительности ты достигнешь, если выкинешь шарповую обертку и будешь работать на плюсах.

Хотя опять же, если тебе хватает производительности, то забей :)

#95
15:00, 14 апр. 2019

alexey.ch
> Однако использование эффектов - это мелочь в сравнении с затратами на маршалинг
> вызовов из дотнена в нативку. Еще большей производительности ты достигнешь,
> если выкинешь шарповую обертку и будешь работать на плюсах.
Дружище, это уже совсем другая история :)

+ Показать
#96
15:04, 14 апр. 2019

DODge

+ Показать
#97
19:35, 14 апр. 2019

maks242
> Зачем вы вообще отвечаете человеку, который не может нагуглить ответы на эти
> заезженные вопросы?

ну видимо они по-умнее тебя будут, ты можешь и не отвечать здесь, без тебя разберемся

> Да ещё и который грубит

хех шта ?

#98
20:29, 14 апр. 2019

endeavour_pr
> Намекну аффтару что можно использовать юните когда голые графические api не
> даются
В первую очередь, начать надо со спеки gl 1.0. Она простая, и помогает хорошо понять общие принципы гапи.

endeavour_pr
> чё ? девятый DX все равно устарел зачем просирать время ?
На новых дх пайплайн остался по большей части тем же, разве что совсем выкинули FFP(который уже в dx9 был через шейдеры).

#99
4:05, 15 апр. 2019

Звезда геймдева
> В первую очередь, начать надо со спеки gl 1.0. Она простая, и помогает хорошо понять общие принципы гапи.
она хорошо помогает понять, почему из неё 90% в итоге выкинули и/или переделали. совершенно не нужные сегодня знания, как и уйма просто-таки вредного хлама в dx9, который только замедлит дальнейший переход на нормальные апи.

#100
6:20, 15 апр. 2019

Suslik
> который только замедлит дальнейший переход на нормальные апи.

которые правда нужны 0.01 % на этом ресурсе

#101
6:26, 15 апр. 2019
innuendo
> которые правда нужны 0.01 % на этом ресурсе
Мне вот интересно, кто вы вообще такой, чтобы решать, кому что нужно, а кому что нет?
#102
(Правка: 9:02) 6:29, 15 апр. 2019
prowkan

мне вот интересно - кто ты такой ? сколько работал на реальных проектах ?
где лично твой коммерческий опыт по DX12/Vulkan?

#103
9:27, 15 апр. 2019

Suslik
Ты прав, именно для этого и стоит почитать, очевидно что черпать там надо не мусор вроде иммейдиейта, а общие принципы работы гапи, как оно всё под капотом работает. Ну и как ты уже сказал - узнать как делать НЕ надо.

#104
8:56, 22 апр. 2019

Вернулся к теме, т.к. уезжал в Китай.

Mikle
> Я написал свой велосипед, объединил блокнот с компилятором:
> https://yadi.sk/d/vssC_lZZEMRbsg

ну а кроме, в каким больших программах компилируют шейдеры?

Страницы: 13 4 5 6 7 8 Следующая »
ПрограммированиеФорумГрафика