Затемняющая часть поверхности в Direct3D 9 - PullRequest
1 голос
/ 29 декабря 2010

В Direct3D 9 я пытаюсь изменить поверхность следующим образом:

Учитывая прямоугольник, для каждого из пикселей в данной поверхности в пределах прямоугольника, каждый из каналов (R, G,B, A) будет умножено на определенное (плавающее) значение, чтобы затемнить или сделать его ярче.

Как бы я поступил так?Желательно избегать использования LockRect (особенно если он не работает с пулом по умолчанию).

1 Ответ

1 голос
/ 04 января 2011

Если вы хотите обновить пиксели Surfaces напрямую, вы можете использовать «Device.UpdateTexture».Это обновляет текстуру, созданную в Pool.SystemMemory, до текстуры, созданной в Pool.Default.

Но это не похоже на то, что вы хотите делать.Используйте эффект для аппаратного ускорения этого.Если вы хотите знать, как я могу показать вам.

...