문제

SharpDX-Toolkit을 사용하고 있으며 Texture2D에서 Mimaps를 만들 수 없습니다. 컨텐츠 관리자가 텍스처를로드하고 generatemipmaps ()를 호출하려고하면 uppportedException을받습니다.

이 텍스처에 대한 MIPMAP를 생성 할 수 없습니다 (rendertarget 및 shaderresource 및 miplevels> 1이어야합니다.

코드 (게임 클래스의 LoadContent-Method) :

Texture2D texture = this.Content.Load<Texture2D>("MyTexture");
texture.GenerateMipMaps(this.GraphicsDevice); <- Exception thrown in this line

나는 무엇을 해야할지 모르고 누군가 가이 문제를 도와 줄 수 있기를 바랍니다. 감사.

도움이 되었습니까?

해결책

사용 :

 Texture2D texture = this.Content.Load<Texture2D>("MyTexture");

기본 텍스처 사용량은 "불변"으로 표시되며 셰이더보기로만 바인딩 할 수 있습니다.

MIPMAP를 생성하려면 ShaderView/Renderview로 사용량이 기본 및 바인딩이어야합니다.

이제 몇 가지 옵션이 있습니다.

1/텍스처를 MIPMAPS로 DDS로 전처리하면 로더가이를 고려합니다.

TexConv 당신을 위해 그렇게 할 수 있습니다. (레벨 카운트를 지정하려면 -M을 사용).

2/위와 같이 텍스처를로드하고 사용하여 두 번째 질감을 만듭니다.

 Texture2D texturewithmips = Texture2D.New(device, texture.Width, texture.Height, MipMapCount.Auto, texture.Format,
 TextureFlags.ShaderResource | TextureFlags.RenderTarget,
 1,Direct3D11.ResourceUsage.Default);

이제 다음을 사용하여 첫 번째 MIP를 복사해야합니다.

device.Copy(texture, 0, null, t2, 0);

이제 사용할 수 있습니다.

t2.GenerateMipMaps(this.GraphicsDevice);

3/위의 방법으로 컨텐츠 관리자를 잃어 버립니다 (자동 캐시 포함).

텍스처 로딩에 대한 더 많은 옵션을 추가하여 TextUrecontentReader 클래스를 수정하여이를 수행 할 수 있습니다.

더 많은 도움이 필요하면 자유롭게 느껴집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top