Articles of 纹理

纹理图案在团结

我正在研究新的方法来优化游戏以获得更好的性能。 目前我正在进行纹理图纹处理,这给我一个很难的时间。 我使用Texture2D.PackTextures制作了地图集,并将偏移量,高度和宽度值保存到文本文件中。 现在,当我将值插入到材质中时,纹理显示正确,但由于批处理需要使用相同的材​​质 – 我如何使用具有不同偏移的相同材质? 图片:所有的立方体使用相同的纹理。 只有右边的两个批次,因为他们使用相同的材​​料。

用纹理导出对象或场景

有没有办法将一些工作导出或发布到一个文件夹,这样别人就可以打开.max文件,而不必重新分配所有的纹理? 我的问题是,我用完全不同的文件夹树中的纹理文件夹直接使用了大量的纹理。 所以当我把文件发给其他人时,他需要重建这个树,就像我做的一样,或者重新分配每个纹理。 如果没有这样的选项,我必须改变我的工作stream程,以防其他人需要使用我的文件,并将所有文件保存在同一个文件夹中? 什么是正常的程序,以保持每个用户的组织和兼容的一切?

HLSL纹理光:只输出纹理的特定部分(新问题)

问题1 我试图创造一个聚光灯,而不是给聚光灯内的圆圈一个简单的颜色,应用纹理。 但是,纹理应该只是一个黑色圆圈: 图像 。 解决scheme:我用于纹理的位置不正确。 旧的和错误的代码: float4 TexturedSpotlightPixelShader(VertexShaderOutput input, float2 TextureCoordinate : TEXCOORD0) : COLOR0 { //I left out all the other code in the shader, full code is at the bottom of the thread color = tex2D(SpotlightTextureSampler, TextureCoordinate); } 更好的代码,解决了我的黑色问题(但创建了一个新的): float4 TexturedSpotlightPixelShader(VertexShaderOutput input) : COLOR0 { //I left out all the other code […]

在xna中生成复杂的地图

我只是想知道这个video是如何制作的。 http://www.youtube.com/watch?v=TM6kcOau5oQ 我正在网上寻找一些教程,但没有成功。 我发现的只是一些2Dvector(matrix),其中有0,1,2的值,但我认为这些地图是以不同的方式生成和存储的。 有人可以帮我或给我一些关于这些地图的建议。 我看到了一些关于独立游戏的介绍,我只是对这些游戏感到惊讶。 我想制作我自己的游戏。 我是一个初学者,已经开始XNA书和一些教程。 我想了解这些游戏是如何制作的。 谢谢!

加载OpenGL纹理,但不会绘制绑定

我手写了我的整个纹理加载器。 我没有使用任何库。 从我收集的加载部分正确完成并存储在纹理类: Texture* TGATextureLoader::create(const char *filename) { FILE *pFile; // File pointer TGAHEADER tgaHeader; // TGA file header unsigned long lImageSize; // Size in bytes of image short sDepth; // Pixel depth; GLbyte *pBits = NULL; // Pointer to bits // Default/Failed values GLint iWidth = 0; GLint iHeight = 0; GLenum eFormat = […]

如何在DirectX11中创建和填充2D纹理数组

我已经生成了一堆ID3D11ShaderResourceView ,这是一个2D纹理,其深度图屏幕截图为我的灯光阴影。 我想把所有这些纹理,并把它们放入一个单一的2D纹理数组。 我已经看到了如何在这个问题中创建2D纹理数组的示例,但是我不知道如何将数据复制到新创建的纹理数组中。

我如何重复一个四边形纹理的一部分?

我想重复纹理的一个选定的部分成一个四边形。 我正在看这个线程 ,但是解决scheme涉及改变我的HLSL。 有没有办法做到这一点,而不改变我的着色器设置? SamplerState SampleType { Filter = MIN_MAG_MIP_LINEAR; AddressU = Wrap; AddressV = Wrap; }; float4 TexturePixelShader(PixelInputType input) : SV_Target { float4 textureColor; // Sample the pixel color from the texture using the sampler at this texture coordinate location. textureColor = shaderTexture.Sample(SampleType, input.tex); return textureColor; } 这是我目前的纹理计算: // Get desired texture coordinates. tLeft […]

告诉我的着色器何时使用哪个纹理

所以我设法通过GLSL着色器进行纹理化,我可以通过一个sampler2d textureHandler +我的uv坐标到我的着色器来指定要在我的Tiles上显示的纹理。 现在即时通讯想知道如何可以定义哪个瓷砖应该得到哪个纹理原因,现在我只能把所有的瓷砖1单纹理我有… 我的顶点着色器: in vec3 position; in vec2 vertexUV; uniform mat4 orthoMatrix; out vec2 UV; void main() { gl_Position = orthoMatrix * vec4(position, 1.0); UV = vertexUV; } 我的片段着色器: in vec2 UV; out vec4 outColor; uniform sampler2D myTextureSampler1; void main() { outColor = texture2D(myTextureSampler1, UV); } 我的纹理加载现在看起来像这样: http : //puu.sh/62MhS.png

使用SharpDX阅读纹理的一部分

我有一个Texture3D 。 我想从CPU端读取它的一部分。 (我正在使用SharpDX工具包(v2.5.1))。 我的数据总是0,但输出显示没有错误。 这是源纹理: testTex = Texture3D.New<float>(GraphicsDevice, wx, wy, wz, PixelFormat.R32.Float, texDat, TextureFlags.ShaderResource, sdx11.ResourceUsage.Default); 我正在尝试阅读这里的一部分: tempFloat = new float[1]; TextureDescription stagedTexDesc = new TextureDescription() { Height = 1, Width = 1, Depth = 1, MipLevels = 1, ArraySize = 1, Format = testTex.Format, Usage = sdx11.ResourceUsage.Staging, CpuAccessFlags = sdx11.CpuAccessFlags.Read | sdx11.CpuAccessFlags.Write, }; texNew […]

重复或包装纹理(DirectX 9)

当然,我错过了D3D 9中的换行/重复纹理。我尝试在着色器中设置采样器,即: sampler DiffuseSampler = sampler_state { Texture = <DiffuseMap>; MipFilter = NONE; MinFilter = POINT; MagFilter = POINT; AddressU = WRAP; // Repeat on X AddressV = WRAP; // Repeat on Y. }; ,而且在渲染对象之前,我也试过在代码中做这件事情: device->SetSamplerState(D3DVERTEXTEXTURESAMPLER0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP); device->SetSamplerState(D3DVERTEXTEXTURESAMPLER0, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP); device->SetSamplerState(D3DVERTEXTEXTURESAMPLER0, D3DSAMP_MAGFILTER, D3DTEXF_POINT); device->SetSamplerState(D3DVERTEXTEXTURESAMPLER0, D3DSAMP_MINFILTER, D3DTEXF_POINT); device->SetSamplerState(D3DVERTEXTEXTURESAMPLER0, D3DSAMP_MIPFILTER, D3DTEXF_NONE); 我认为我的纹理坐标可能会有些扭曲,所以我把它们编码为0.0,左边是0.0,右边是2.0,右边是2.0。 我期望x 2重复,但得到了与屏幕截图类似的结果,纹理左上角,然后看起来像钳在整个图像的其余部分。 我在这里犯了什么错误? (请注意,屏幕截图不是我所做的0.0,0.0 […]