22 我有一个要在XNA中按比例放大的精灵,但是XNA正在应用某种纹理过滤来使其平滑并使它看起来丑陋。我希望它只是做像素加倍而不是插值。我该怎么做? xna c# xna-4.0 sprites spritesheet — 丹尼尔T. source
28 您需要设置采样器状态。SpriteBatch的默认值为SamplerState.LinearClamp(即:线性插值-平滑/模糊1)。 选择一个SpriteBatch.Begin接听SamplerState并传递的呼叫SamplerState.PointClamp(选择该点“点”处的像素)。 — 安德鲁·罗素 source
13 以防万一其他人想知道如何在Sprite批处理之外执行此操作,您可以在渲染基本体之前执行此操作: this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp; 如果渲染管道中还有其他项目会更改该值(例如SpriteBatch),则必须在每一帧上执行此操作。 — 约翰·吉岑 source 3 是的 只是为了完整起见,SamplerState.PointWrap如果您想进行纹理包装(同时仍禁用纹理过滤),则还有一个问题。或者,如果您需要自己的自定义行为,则可以创建一个SamplerState满足任何自定义需求的新对象,并将Filter属性更改为TextureFilter.Point。 — David Gouveia 2012年
SamplerState.PointWrap
如果您想进行纹理包装(同时仍禁用纹理过滤),则还有一个问题。或者,如果您需要自己的自定义行为,则可以创建一个SamplerState
满足任何自定义需求的新对象,并将Filter
属性更改为TextureFilter.Point
。