Gráfica DirectX 11 (discussão geral)

Olas a todos! :P Provavelmente niguem aqui me conhece mas vou dar aminha opiniao sobre o assunto. Tal como qualquer mercado o objectivo é melhorar e surpreender os consumidores com uma tecnologia melhor e mais avançada. Nos ultimos 2 anos temonos deparado com uma enorme evolução na tecnologia no mundo da informática. Como a tecnologia evolui são feitas entao novas placas preparadas para essa tenologia. Voces nao podem dizer que as maquinas mal correm Dx10 que é mentira, existe agora é uma variedade muito menor de placas Boas para correr DX10, enquanto que no nosso passado tinhamos uma Voodoo , ou Matrox, ou Nvidia, ou ATI, ou uma outra qq , que corria os jogos sem qualquer problema, porque a exigencia grafica era muito menor que a de hoje. Agora estamos num mercado em que é extremamente exigente os graficos, se forem a ver é o que dão mais importancia nos jogos. O facto de um jogo não correr a 100 % nao é por causa da microsoft, mas sim nós que nao temos uma máquina preparada para tal, pois é caro e custa dinheiro, ainda por cima so há agora 2 concorrentes em placas graficas decentes ATI e Nvidia. E nao só , os jogos têm a exigencia que têm porque as empresas de jogos fazem os jogos assim.
O Mercado mudou, a tecnologia tem dado o seu grande salto. Estamos para aqui a criticar a microsoft como se eles tivessem culpa , tipo... a microsoft vai ter de parar a sua grande empresa e a evolucao informatica la porque nao ha jogos suficientes para dx10 ou nao existem placas que corram bem os jogos? Eles nao têm culpa.. Se querem culpar alguem, culpem antes as empresas que ficaram para tras nas placas graficas, e tambem as empresas de jogos que sao eles que fazem com que os jogos fiquem pesados =P
Na minha opiniao acho que tamos a um excelente passo, e ainda bem que anda assim a esta velocidade. Pois se andar como a tecnologia dos telemoveis, em que encontra-se a um passo muito mais lento e é mais um jogo comercial que esta a ser bem aproveitado. Ou até as consolas que foi uma desilusao para alguns , pois nao sei se se lembram houve uma grande critica na PS3 que saiu o qual dizem que o processador é demais para a máquina em si por exemplo..

O que eu quero dizer com isto é que o nosso mundo da informática está a um passo bom. Podia estar a evoluir mais depressa, mas tá a um passo já excelente, e ainda bem que está assim! Posso não ter um PC bomba, mas isso não é o que importa, sim a evolução da tecnologia pois as coisas vão se tornar mais interessantes com o tempo :D

Não acham?
 
DirectX 11: A look at what's coming

4s.jpg
5s.jpg

6s.jpg


DirectX 11 pipeline
pipeline.jpg


Tessellation
tes3s.jpg
tes4s.jpg

tes5s.jpg
tes6s.jpg


tes11s.jpg
tes12s.jpg


Compute Shader
cs2s.jpg
cs3s.jpg

cs5s.jpg
cs6s.jpg


Multi-threading
mt1s.jpg
mt2s.jpg


Dynamic Shader Linkage
ds1s.jpg


Improved Texture Compression
tex1s.jpg
tex3s.jpg



Initial Thoughts...

Although DirectX 11 is scheduled for release in conjunction with the next-generation Windows operating system, it’s not as far away as you’d first think. Kev Gee said the company is planning to release a preview of the new API as early as November this year – that’s just a few short months away. When that arrives, the playing field will be a lot clearer and the specs will be much closer to being finalised.

Gee gave a quick glimpse at some of the other improvements scheduled to make it into DirectX 11, but there’s every chance that some of these might be removed. I think it’s safe to say the main features we’ve talked about today will be in D3D11, but those that we haven’t discussed in detail are probably still on the waiting list.

Because of this, it’s hard to make any sweeping judgements on those additional features at this early stage. However, we can talk about the features that are all but 100 percent confirmed – things like Tessellation, the Compute Shader, and multi-threading in particular.

more.jpg


Collectively, these are big plusses for DirectX 11 and they will enable developers to take games to the next level. Tessellation has the potential to help remove things like pop up, where characters and terrain constantly switch from low detail models in the distance, to medium detail and then to high detail when they’re very close to your character. It will allow developers to calculate a continuous level of detail with many incremental steps right from immediate surroundings to a long way into the distance – this will inevitably help to make games feel more immersive once developers have started to get to grips with using tessellation.

The good thing is that developers already have tessellation hardware available to them in the Xbox 360 and they can use it in shipping titles. It’s not quite that simple with the tessellation unit in AMD’s discrete GPUs though – but it’s not through fault of AMD, it’s more down to the fact developers would only be developing for part of the market, and we’ve already seen how hard it has been for AMD to get developers to use DirectX 10.1 in their games. What the Radeon’s tessellation unit does do though is enable developers to play around with tessellation on the PC and it will also give them an idea of how code is going to port from Xbox 360 to PC, as commercial reality dictates that the Xbox is more than likely the primary platform for most developers these days. The fact of the matter is that it also strengthens Microsoft's foothold in the next generation of consoles too, because the likelihood is that it will further strongly correlate the Windows gaming platform to the Xbox one and allow for even easier cross-platform development and great cost efficiency for developers.

Multi-threading is also a welcome and much-needed addition to the API – the best thing about it though has to be the backwards compatibility, subject to driver updates from the hardware vendors, with DirectX 10 hardware. This will likely really benefit multi-GPU setups, because they’re often CPU limited – being able to queue up draw calls on multiple CPU cores makes a lot of sense in that respect. However, what’s worrying about that is the potential for even more multi-GPU products – I really hope that, at some point, we can get the scaling we as customers deserve from these double-chipped cards all the time.

The Compute Shader, on the other hand, is something we’ve seen already in both AMD’s and Nvidia’s hardware – it’s basically the ‘other’ mode that today’s GPUs can operate in. However, what DirectX 11 does is formalise and standardise the industry’s push towards using the GPU to accelerate massively parallel applications, while also adding the next level of realism into 3D games.

We’re already starting to see that with middleware like PhysX and Havok and the work that companies like Natural Motion are doing to improve character physics and AI also has the potential to be ported into the Compute Shader. Realistically, although CUDA in particular has raised GPU computing’s awareness, it’s APIs like DirectX and OpenCL that are likely to stand the test of time. Of course, CUDA—and AMD’s CAL—will still remain, as the APIs will likely just sit on top of the current architectures.

Speaking to Richard Huddy, AMD’s Worldwide Head of Developer Relations, last week prompted me to quiz him about how he felt industry standards like DirectX 11 and OpenCL would be accepted by the scientific market (and the wider market as a whole).

“I think that once DX11 arrives it will be perfectly practical for scientific apps to be based on the Compute Shader – and I’d guess quite a lot of work will take place there,” said Huddy. “But (at present) my personal view is that OpenCL is likely to be the most useful place for this work. I think games developers will almost exclusively use the CS in DX11 since inter-operability will likely never prove to be a problem.”

“It seems likely that OpenCL will arrive maybe as much as a year ahead of DX11 and for engineering work that doesn’t need simultaneous access to a 3D graphics API it should be a great place to develop,” he continued. “OpenCL is so close now that our Stream SDK, CUDA and any other proprietary solutions will start to take a back seat very soon. Open standards are always a better place for developers to be...”

Both [DirectX 11 and OpenCL] will allow portable code – and, at the current rates of hardware advancement, portability has to be a huge issue for anyone spending significant sums on development. It doesn’t make much sense to me to write an app for one specific GPU knowing that this GPU will be seriously superceded in only a few months or at most a year,” Huddy added.

Although I didn’t manage to get a specific response from Nvidia, the sources I spoke to about DirectX 11 seemed to agree with Huddy’s assessment – they believe it is a case of Microsoft (and technically the industry as a whole) legitimising the effort put into developing CUDA.

With that said, it’s worth bearing in mind that some industry luminaries, including Epic’s Tim Sweeney, believe that the API is dying. Sweeney, for example, wants a C++ compiler for each hardware platform with full programmability – he wants a full software renderer that runs on multiple platforms. Some of his reasoning behind this is undoubtedly related to his ability to write a great 3D graphics engine – we all know that Epic’s engines are probably the most widely licensed 3D engines in this day and age, but it’s nevertheless interesting to see someone thinking in a different way to the rest of the industry.

An industry without APIs could be an interesting one and full developer freedom would deliver the potential for some incredible creations, but it could also harbour the potential for some incredibly bad creations as well. For now, there’s every reason to believe that DirectX 11 will become the next de-facto programming environment for PC games.
Muito mais informação:
http://www.bit-tech.net/bits/2008/09/17/directx-11-a-look-at-what-s-coming/1
 
A ver se essa feature que é o Tessellation vêm de vez para as aplicações. Já houve tanta tentativa e nada funcionou em condições.

Faz-me lembrar o caminho penoso em que foi implementar o bump mapping em jogos.
 
A ver se essa feature que é o Tessellation vêm de vez para as aplicações. Já houve tanta tentativa e nada funcionou em condições.

Faz-me lembrar o caminho penoso em que foi implementar o bump mapping em jogos.

O bump mapping é aquilo a que hoje chamamos de Parallax Occlusion Mapping (POM), não é?
 
A ver se essa feature que é o Tessellation vêm de vez para as aplicações. Já houve tanta tentativa e nada funcionou em condições.

Faz-me lembrar o caminho penoso em que foi implementar o bump mapping em jogos.

Bump Mapping não é trivial. Tentei implementar para um projecto de Computação Gráfica em OpenGL, mas não consegui (tb so tive 3 semanas para o projecto). No entanto o efeito visual é mt bom nos exemplos que vi.

A AMD vai lançar a Tesselation SDK em Novembro nos Cat 8.11 por isso so a partir dai é que devemos começar a ver aplicações trid-party para além dos Demos da AMD e da Xbox360.
 
O bump mapping é aquilo a que hoje chamamos de Parallax Occlusion Mapping (POM), não é?

O Parallax Mapping pode-se dizer que nasceu a partir do Bump Mapping.

O Bump Mapping até dá para fazer perfeitamente sem qualquer suporte para shaders. Alias basta lembrar que até por exemplo GeForce2/4MX consegue simular Bump Mapping no Doom3 tirando a questão da velocidade.

O Bump Mapping é uma técnica para criar superfícies mais rugosas mas aquilo é apenas uma simulação criada com alguns efeitos de luzes, ou seja, na realidade aquilo é fake. Pegando no Doom3, se vires um dos bonecos ao longe, os detalhes parecem ter volume mas se vires bem de perto aquilo não passa de uma textura plana. Aquele efeito é conseguido com uns truques na iluminação dos objectos.

O Parallax Mapping é um Bump Mapping mais real e já requer hardware mais avançado para conseguir um efeito mais real. Uso do Parallax Mapping estou-me a lembrar dos espaços interiores no Elder Scroll: Oblivion assim como nos jogos que usam o motor do Unreal3. E neste caso já se nota que o efeito é real se estiveres mesmo a ver de perto.

Mas acho que deve haver muitos mais jogos actuais que usam Parallax Mapping. Tenho lido alguns comentários que não é tão díficil implementar e nem custa tanta performance.
 
venha é o ray tracing !

o ray tracing é verdadeiramente scalable... nao acredito que este dx11 seja uma revolução do que ja andei a ler por aí
 
O bump mapping é aquilo a que hoje chamamos de Parallax Occlusion Mapping (POM), não é?

O parallax cria oclusion tal como se existisse profundidade... por exemplo, imaginem um parallax de um chão de pedra... se inclinares a câmara relativamente à superfície deixas de ver o fundo das ranhuras entre as pedras por estas estarem mais baixas. É nisto que o bump mapping falha pois esse apenas cria efeito de profundidade por aplicação de um light map na superfície.

A desvantagem de parallax é que em vez de usares height maps de 8-bits, tens de usar normal maps de 24-bits (3 canais de 8-bits) para poderes ter representadas as 3 normais de uma superfície para conseguir o efeito desejado :P
 
Última edição pelo moderador:
A desvantagem de parallax é que em vez de usares height maps de 8-bits, tens de usar normal maps de 24-bits (3 canais de 8-bits) para poderes ter representadas as 3 normais de uma superfície para conseguir o efeito desejado :P

Tenho a impressão que basta escrever um shader program para simular o parallax. Lembro-me no caso do Doom3, em que passado algum tempo algumas pessoas escreveram alguns programas de shader para simular parallax no jogo sem recorrer à texturas extra.

Aquilo funcionava bem em certos sítios, mas às vezes dava cagada em algumas situações. As razões disso acontecer já me ultrapassa. :P
 
Última edição pelo moderador:
Crusher disse:
Tenho a impressão que basta escrever um shader program para simular o parallax. Lembro-me no caso do Doom3, em que passado algum tempo algumas pessoas escreveram alguns programas de shader para simular parallax no jogo sem recorrer à texturas extra.

Aquilo funcionava bem em certos sítios, mas às vezes dava cagada em algumas situações. As razões disso acontecer já me ultrapassa.

Pois... o problema residia quando querias criar arestas bem definidas terias de recorrer a heigh maps de resoluções absurdas enquanto que com normal map consegues fazê-lo com mapas extremamente pequenos :P

este exemplo em que o shader q falast é o 3º e o com normal map é o último caso.
 
Última edição:

OpenGL 3 & DirectX 11: The War Is Over : Introduction

http://www.tomshardware.com/reviews/opengl-directx,2019.html

Conclusion

We were expecting a lot from OpenGL 3, and as you can tell by reading this article, we’re disappointed—both in the API itself (with the disappearance of promised features) and in the way it’s been handled (a year-long delay and a lack of clear communication on the part of the Khronos group). With this version, OpenGL barely keeps up with Direct3D 10, and at a time when Microsoft has chosen to publicize the first details of version 11 of its own API.

There’s nothing revolutionary from Microsoft either, but unlike OpenGL, Direct3D already underwent a major revision of its architecture two years ago. There were some rough stretches of road, but today Microsoft can reap the benefits of the efforts made then to rebuild the API on a sound foundation.

So, it’s undeniable that Redmond is looking to the future, whereas one gets the impression that Khronos is content with just supporting current GPUs. Here’s hoping it’ll prove us wrong by speeding up the evolution of OpenGL 3, since it is the only API available for multi-platform development. But too many letdowns up until now certainly have our faith in the organization shaken.
 
Entretanto, se a guerra está perdida no mercado convencional (algo ridículo, pois todas as aplicações profissionais -de onde o OpenGL saíu em primeiro lugar, antes de chegar aos jogos- continuam a preferir o OpenGL e esse é o standard "de facto" da indústria), por outro lado não há suporte DirectX em qualquer outra plataforma além do Windows.

Ou seja, o Linux, o MacOS X e plataformas embedded como os telemóveis ou as consolas (PS3, sobretudo) vão continuar a usar OpenGL extensivamente no futuro.


Uma coisa que se ignora com frequência é que apenas as specs básicas do OpenGL estão relativamente paradas, mas quase todos os fabricantes 3rd party adicionam constantemente extensões proprietárias à API principal, que não dependem do OpenGL ARB/Khronos Group para aprovação oficial.
A Sony e a Nvidia fizeram isso mesmo de forma particularmente extensa e chamaram à "sua" API "PSGL" (PlayStation GL), em vez de OpenGL ES 1.0/2.0.

Não se pode adicionar nada ao DirectX, muito menos sem a aprovação oficial da Microsoft (que geralmente fica com os louros das "inovações" quando lança uma nova geração da API, renomeando tecnologias inventadas pelos fabricantes de placas gráficas, ou seja, quem detém efectivamente a maioria da IP relacionada com rendering 3D em tempo real neste momento).
 
Última edição:
Back
Topo