나는 플레이어의 스프라이트를 사용하여 그 아래의 바닥에 동적 그림자를 만듭니다.모노 게임의 Spritebatch와 알파 블렌딩 문제
문자의 현재 애니메이션 프레임이 세로로 뒤집 혔고, 수직으로 채워지고, 부분적으로 알파 투명성을 유지하면서 그 아래에 검은 색으로 그려집니다.
spriteBatch.Draw (character_sprite[character[c].sprite, 0], r_draw, r_source, Color.Black * .3f, MathHelper.ToRadians (0), v_origin, SpriteEffects.FlipVertically, 0);
이것은 XNA에서 훌륭하게 보였지만 Monogame으로 이식 한 후에 나는 이상한 결과를 얻었습니다.
불투명도 수준은 0f에서 1f까지 다양해야하지만 대부분의 값은 약 .05f 이하로 떨어 뜨리지 않는 한 단색 검정색 (전체 불투명도)을 생성하는 것으로 보입니다. 이 시점에서 부분 투명도를 얻었지만 결과는 검은 색 (어두운 색)이 아닌 회색 (채도가 적음)으로 나타납니다. 회색 표면에는 예를 들어 전혀 그림자가 없습니다. 의 SpriteBatch 대신 AlphaBlend의 AdditiveBlend을 사용하여처럼
은 거의 같다,하지만 난 확실히 알파로 설정하고 한 번만 설정 해요 :
spriteBatch.Begin (SpriteSortMode.Immediate, BlendState.AlphaBlend);
무엇 또한 흥미로운 것은 내가 컬러로 색을 설정 한 경우이다 . 흰색 대신 (검은 색 대신) 투명도는 뒤틀린 색이없는 정상적인 것처럼 보입니다.
Monogame이 알파 투명도를 XNA와 다르게 처리합니까?
UPDATE :
내가 일반, 블랙, 타원형 그림자를 생성하고 Color.White * 불투명도를 그리기 시도. 이것은 또한 배경색을 어둡게하는 대신에 회색이었던 그림자를 초래하여 Color.White에 관한 나의 초기 이론을 반증합니다. 게임의 모든 부분 투명도가 알파 대신 첨가물로 처리되는 것 같습니다.