I have a texture problem with the cubemap I'm rendering and can't seem to figure it out. I've generated a cube map with direct x's texture tools and then read it using 

 D3DX11CreateShaderResourceViewFromFile(_pd3dDevice, L"cubemap.dds", 0, 0, &fullcubemap, 0);

The cubemap texture is not high quality at all and it looks really stretched/distorted. I can definitely tell that the images used for the cubemap match correctly, but it's not great at all at the moment

[![enter image description here][1]][1]

I'm not sure why this is happening. Is it because my textures are too large/small or is it something else? If it's due to the size of the textures, what is a recommended texture size? I am using a sphere for the cubemap not a cube.


 [1]: https://i.sstatic.net/fqarV.png

Edit:

Shader:

 cbuffer SkyboxConstantBuffer {
 	float4x4 world;
 	float4x4 view;
 	float4x4 projection;
 };
 
 TextureCube gCubeMap;
 
 SamplerState samTriLinearSam {
 	Filter = MIN_MAG_MIP_LINEAR;
 	AddressU = Wrap;
 	AddressV = Wrap;
 };
 
 struct VertexIn {
 	float4 position : POSITION;
 };
 
 struct VertexOut {
 	float4 position : SV_POSITION;
 	float4 spherePosition : POSITION;
 };
 
 VertexOut VS(VertexIn vin) {
 	VertexOut vout = (VertexOut)0;
 
 	vin.position.w = 1.0f;
 
 	vout.position = mul(vin.position, world);
 	vout.position = mul(vout.position, view);
 	vout.position = mul(vout.position, projection);
 
 	vout.spherePosition = vin.position;
 
 	return vout;
 }
 
 float4 PS(VertexOut pin) : SV_Target {
 	return gCubeMap.Sample(samTriLinearSam, pin.spherePosition);//float4(1.0, 0.5, 0.5, 1.0);
 }
 
 RasterizerState NoCull {
 	CullMode = None;
 };
 
 DepthStencilState LessEqualDSS {
 	DepthFunc = LESS_EQUAL;
 };
 
 technique11 SkyTech {
 	pass p0 {
 		SetVertexShader(CompileShader(vs_4_0, VS()));
 		SetGeometryShader(NULL);
 		SetPixelShader(CompileShader(ps_4_0, PS()));
 
 		SetRasterizerState(NoCull);
 		SetDepthStencilState(LessEqualDSS, 0);
 	}
 }

Draw:

	immediateContext->OMSetRenderTargets(1, &_pRenderTargetView, nullptr);

	XMMATRIX sworld, sview, sprojection;
	SkyboxConstantBuffer scb;
	sview = XMLoadFloat4x4(&_view);
	sprojection = XMLoadFloat4x4(&_projection);
	sworld = XMLoadFloat4x4(&_world);

	scb.world = sworld;
	scb.view = sview;
	scb.projection = sprojection;

	immediateContext->IASetIndexBuffer(cubeMapSphere->getIndexBuffer(), DXGI_FORMAT_R32_UINT, 0);
	ID3D11Buffer* vertexBuffer = cubeMapSphere->getVertexBuffer();
	//ID3DX11EffectShaderResourceVariable * cMap;
	////cMap = skyboxShader->GetVariableByName("gCubeMap")->AsShaderResource();
	immediateContext->PSSetShaderResources(0, 1, &fullcubemap);//textures
	//cMap->SetResource(fullcubemap);
	immediateContext->IASetVertexBuffers(0, 1, &vertexBuffer, &stride, &offset);
	immediateContext->VSSetShader(skyboxVertexShader, nullptr, 0);
	immediateContext->VSSetConstantBuffers(0, 1, &skyboxConstantBuffer);
	immediateContext->PSSetConstantBuffers(0, 1, &skyboxConstantBuffer);
	immediateContext->PSSetShader(skyboxPixelShader, nullptr, 0);

	immediateContext->UpdateSubresource(skyboxConstantBuffer, 0, nullptr, &scb, 0, 0);
	immediateContext->DrawIndexed(cubeMapSphere->getIndexBufferSize(), 0, 0);