Pergunta

Eu estou procurando algumas dicas sobre XNA no Xbox 360, principalmente se é possível executar matemática flutuador baseados em vetores em seu GPU?

Se há uma maneira, você pode me apontar na direção certa?

Foi útil?

Solução

Eu não tenho a pretensão de ser um especialista nisso, mas espero que isso pode apontar para uma direção útil.

É possível? Sim. Você provavelmente já sabe que a GPU é bom em tais cálculos (daí a pergunta) e você pode realmente controlar a GPU usando XNA. Se ele irá ou não atender às suas necessidades é uma questão diferente.

Para fazer uso da GPU, você provavelmente quer shaders escrever usando HLSL. Há uma introdução decente para HLSL no contexto do XNA em Reimers , que você pode querer percorrer. Notavelmente, que se concentra tutorial sobre como fazer a GPU fazer trituração gráficos-relacionados, mas o que você escreve nos shaders é até você. Se a sua bóia de matemática baseado em vetor é para a finalidade de prestar (e, portanto, pode ficar no domínio GPU), você está na sorte e pode parar por aqui.

renderização Provavelmente na tela não é o que você está depois. Agora, você tem uma boa quantidade de flexibilidade na HLSL, quanto a fazer a sua matemática vai. Obtendo os resultados para o CPU, no entanto, não é a forma como o sistema foi concebido. Isso está ficando confuso para mim, mas Shawn Hargreaves (um dev XNA) afirma em mais um ocasião que a obtenção de saída do GPU (excepto prestados na tela) é não-trivial e tem implicações de desempenho. Recuperação de dados envolve uma chamada para GetData que irá causa um tenda gasoduto .

Então, isso pode ser feito. O quadro XNA vai deixar você escrever shaders para o 360 (que suporta Shader Model 3.0 mais algumas extensões) e é possível obter esses resultados para fora, embora possa não ser suficiente eficiente para as suas necessidades.

Outras dicas

Como foi dito acima -. XBox360 é plenamente capaz de qualquer cálculo HLSL e, especificamente, ele pode lidar com Vertex e Pixel Shader Model 3 instruções e tem um conjunto aprimorado de instruções que são específicos para a plataforma

Desde HLSL é realmente baseado em vetores que você tem todas as ferramentas que você precisa - ponto, cruz, operações vetoriais e cálculos matriciais. Se você quiser enviar os cálculos para a GPU e editar / utilizar os resultados no CPU você pode escrever a textura e, em seguida, buscá-lo no lado do CPU e decodificá-lo - usando-o para partículas ou interações físicas (como a água) são alguns dos as ocasiões em que você pode querer fazê-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top