O que aconteceu com as texturas geradas proceduralmente? [fechadas]


23

Lembro-me há algum tempo que as texturas geradas proceduralmente estavam se tornando um grande negócio que muitas pessoas / empresas estavam realmente interessadas em alguns benefícios sérios (implantações menores, carregamento potencialmente mais rápido, maior qualidade, texturas escaláveis, potencialmente mais baratas de produzir etc.) )

Pelo que sei, o zumbido está morto e nenhum jogo no meu radar os está usando. O que aconteceu?

Eu esperava ver texturas processuais da mesma maneira que as coisas do NaturalMotion (adoção lenta, mas constante).

Respostas:


14

As ferramentas de criação de conteúdo para texturas processuais têm sido o maior obstáculo. Os artistas são muito rápidos em montar as coisas no Photoshop e os ganhos potenciais com texturas procedurais não superam o aumento do tempo de criação de conteúdo.

O Allegorithmic ( http://www.allegorithmic.com/ ) possui algumas ferramentas interessantes que eles desenvolveram para tentar tornar as opções processuais mais amigáveis. Ainda não brinquei com eles o suficiente para comentar sobre sua usabilidade.


1
Allegorithmic foi a empresa que eu ouvi pela primeira vez quando a bomba explodiu e sua lista de clientes tem alguns grandes jogadores, mas, considerando que eles estão no mercado há muito tempo, ainda é bem pequena.
Steven Evers

1
Produtos Substância de Allegorithmic olhar realmente muito bom .. Se você der uma olhada nos vídeos encontrados aqui: allegorithmic.com/?PAGE=PRODUCTS.designer
Nailer

4

A perda do controle artístico e o aumento do tamanho das opções de armazenamento tornaram isso difícil de vender. Além disso, você teria que treinar novamente os artistas, enquanto os contratava para o que eles eram bons em texturas tradicionais. A menos que tamanho ou texturas únicas sejam realmente realmente um problema, geralmente há pouco desejo de seguir o caminho processual.


3

Basicamente, as grandes armas não a suportam, por isso não está sendo muito usada. Houve coisas legais (embora um pouco antigas), como .kkrieger, mas o tempo de carregamento nisso (antigamente) era muito lento, pois era necessário gerar todas as texturas durante o carregamento.

Podemos ver algo nos motores da próxima geração (Unreal 4, etc.), mas não acho que o ganho versus desenvolvimento seja grande o suficiente.

Existem exemplos no mundo AAA, por exemplo, o Spore gerou processualmente texturas e animações para as criaturas que você criou.


3

A textura processual sofre com o problema que um diretor de arte não pode apontar com segurança para o trabalho de um artista e diz "por favor, faça essa parte um pouco mais de X". porque o sistema de sombreamento processual pode não oferecer suporte ao X de forma barata ou nem um pouco.

Por exemplo, um shader de tijolo pode suportar tijolos marrons limpos, mas não pode suportar tijolos pintados com um anúncio há 80 anos e grafite há 10 anos. Ou pode não suportar ter um tijolo roxo de 1.000 tijolos marrons. Exatamente naquele ponto, porque ele apela ao gosto do diretor de arte.

Uma textura real pode suportar todas essas coisas, é claro, e, nesse sentido, uma textura real é superior a uma textura processual.

A textura processual exerce controle artístico em virtude de sua preferência por determinados casos de uso em detrimento de outros. Uma textura real exerce pouco controle.

O hardware da GPU, no entanto, tem uma forte preferência pelo procedimentalismo, porque a memória de textura fica a muitos ciclos das unidades da ALU que fazem o sombreamento.


Acho isso difícil de engolir. Não é uma limitação das texturas processuais que um tijolo não pode ser de uma cor diferente do resto, é uma limitação da tecnologia de implementação. Certamente, eu poderia concordar que, em algum momento de ser muito específico, superaria os benefícios de fazer as coisas proceduralmente, mas isso está além do ponto.
precisa

Um tijolo pode ter sido um mau exemplo, mas seus outros exemplos são válidos. É muito complexo e demorado definir um novo algoritmo para uma ligeira alteração no "toque" de uma textura, mas muito barato e fácil para um artista apenas fazer a alteração. Lembre-se de que os engenheiros geralmente são pagos muito mais do que os artistas; portanto, o tempo gasto com o engenheiro para fazer o que um artista pode fazer mais rapidamente é tolo.
23412 Sean Middleditch

@SeanMiddleditch, os engenheiros podem receber mais do que artistas, mas a diferença é: uma vez que um engenheiro tenha escrito o código, ele poderá ser reutilizado para sempre, sem custos adicionais. Portanto, embora possa levar tempo para desenvolver um gerador de procedimentos que possa ser modificado, até o nível de bloco individual - uma vez feito, ele será livre para usar. Se uma empresa está pagando artistas por mudanças individuais, elas precisam continuar fazendo isso para cada novo requisito de mudança que surgir, ao contrário de uma solução automatizada.
Ciclope

2
@ Cyclops: boa sorte com esse super procedimento mágico que permite fazer os detalhes intencionais precisos que um artista pode. Estou ansioso para ler seu artigo de pesquisa inovador quando ele for lançado e, eventualmente, licenciar sua über tech obsoleta por artistas. :)
Sean Middleditch

1

bem, ainda parece uma ótima idéia, especialmente para jogos. Como você pode gerar processualmente texturas em tempo real para que o mundo ao redor do player pareça mais natural. Não é necessário grande volume de dados. Pode ser usado com certeza para aumentar até a resolução


0

Você tem o tempo típico de troca de memória . Bem, goste ou não, a geração procedural troca o tempo da CPU pela conservação da memória. Na verdade, à medida que o armazenamento fica mais barato e as pessoas sempre desejam tempos de carregamento mais curtos, a tendência é o contrário - os ativos pré-gerados ou fotografados consomem memória em troca de velocidade.

Um jpg é carregado mais rápido que uma versão gerada proceduralmente? Provavelmente sim . Se o jpg tem 2 MB e você o carrega uma vez, por que se preocupar com procedimentos? Em tempo de execução, a textura ocupa a mesma quantidade de RAM (descompactada e carregada na memória da GPU)


É improvável que o JPEG seja carregado mais rapidamente do que a maioria dos algoritmos de textura processual. Os tempos de acesso ao disco superam largamente o tempo de processamento da CPU / GPU, e como ninguém em sã consciência usa JPEG para texturas e usa texturas compactadas maiores, porém otimizadas para GPU, com camadas mipmap pré-computadas, o tempo de carregamento do disco é ainda pior para texturas reais. Há razões pelas quais as texturas procedimentais são péssimas (mencionadas em outras respostas), mas o tempo de carregamento geralmente não é uma delas. Tenho certeza de que existem exceções para algoritmos particularmente complicados ou ineficientes, é claro.
23612 Sean Middleditch

Sim, como .dds. Eu apenas usei o JPG como exemplo. O que quero dizer é que é a geração processual de paralelepípedos, água ou árvores em uma floresta usando sistemas L ou o que levar eras mais tempo (mas se encaixa em 96k!) Do que apenas carregar conteúdo no disco, então ninguém vai querer rota, simplesmente para reduzir o tempo de carregamento.
bobobobo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.