Qu'est-il arrivé aux textures générées par la procédure? [fermé]

23

Je me souviens il y a quelque temps que les textures générées de manière procédurale devenaient un gros problème qui intéressait beaucoup de personnes / entreprises avec de sérieux avantages (déploiements plus petits, chargement potentiellement plus rapide, qualité supérieure, textures évolutives, potentiellement moins chères à produire, etc.). ).

D'après ce que je peux dire, le buzz est mort et aucun jeu sur mon radar ne les utilise. Qu'est-il arrivé?

J'espérais voir des textures procédurales comme les trucs de NaturalMotion (adoption lente mais régulière).

Steven Evers
la source

Réponses:

14

Les outils de création de contenu pour la texturation procédurale ont été le plus grand obstacle. Les artistes assemblent très rapidement les choses dans Photoshop et les gains potentiels avec la texturation procédurale n'ont pas dépassé le temps de création de contenu accru.

Allegorithmic ( http://www.allegorithmic.com/ ) possède des outils intéressants qu'ils ont développés pour essayer de rendre les options procédurales plus conviviales. Je n'ai pas assez joué avec eux pour vraiment commenter leur utilité.

wkerslake
la source
1
Allegorithmic était la société dont j'ai entendu parler pour la première fois lorsque le buzz bombe a frappé et leur liste de clients compte de gros joueurs, mais, étant donné qu'ils sont en affaires depuis longtemps, c'est toujours assez petit.
Steven Evers
1
Les produits Substance d'Allegorithmic sont vraiment très bien .. Si vous regardez les vidéos trouvées ici: allegorithmic.com/?PAGE=PRODUCTS.designer
Nailer
4

La perte de contrôle artistique et l'augmentation de la taille des options de stockage en font une vente difficile. Cela, en plus, vous devrez recycler des artistes, pendant que vous les embauchez pour ce qu'ils étaient bons en texturation traditionnelle. À moins que la taille ou la texturation unique ne soit vraiment un problème, il y a peu de désir général de suivre la voie procédurale.

Kaj
la source
3

Fondamentalement, les gros canons ne le supportent pas, donc il n'est pas beaucoup utilisé. Il y a eu des choses sympas (quoique un peu anciennes), comme .kkrieger mais le temps de chargement là-dessus (dans la journée) était vraiment lent, car il devait générer toutes les textures au moment du chargement.

Nous pourrions voir quelque chose ou autre dans les moteurs de prochaine génération (Unreal 4, etc.), mais je ne pense pas que le gain par rapport au développement soit suffisamment important.

Il existe des exemples dans le monde AAA, par exemple Spore a généré des textures et des animations générées de manière procédurale pour les créatures que vous avez créées.

Ólafur Waage
la source
3

La texture procédurale souffre du problème qu'un directeur artistique ne peut pas pointer de manière fiable sur le travail d'un artiste et dire "s'il vous plaît, rendez cette partie un peu plus X". car le système d'ombrage procédural peut ne pas prendre en charge X à moindre coût ou pas du tout.

Par exemple, un shader de brique peut prendre en charge une brique marron propre, mais pas une brique peinte avec une publicité il y a 80 ans et un graffiti il ​​y a 10 ans. Ou il peut ne pas supporter d'avoir une brique violette sur 1000 briques brunes. Exactement à cet endroit, car cet endroit fait appel au goût du directeur artistique.

Une vraie texture peut bien sûr supporter toutes ces choses, et dans ce sens une vraie texture est supérieure à une texture procédurale.

La texture procédurale exerce un contrôle artistique en raison de sa préférence pour certains cas d'utilisation par rapport à d'autres. Une vraie texture exerce peu de contrôle.

Le matériel GPU, cependant, a une forte préférence pour le procéduralisme, car la mémoire de texture est tellement éloignée des unités ALU qui font l'ombrage.

bmcnett
la source
Je trouve ça difficile à avaler. Ce n'est pas une limitation des textures procédurales qu'une brique ne peut pas être d'une couleur différente du reste, c'est une limitation de la technologie d'implémentation. Bien sûr, je pourrais convenir qu'à un moment donné, être trop précis l'emporterait sur les avantages de faire les choses de façon procédurale, mais c'est d'ailleurs le point.
Kevin Peno
Une brique aurait pu être un mauvais exemple, mais ses autres exemples tiennent. Il est très très complexe et prend du temps de définir un nouvel algorithme pour un léger changement de "sensation" pour une texture, mais très bon marché et facile pour un artiste de simplement faire le changement. Gardez à l'esprit que les ingénieurs sont généralement mieux payés que les artistes, donc le temps passé par un ingénieur à faire ce qu'un artiste peut faire plus rapidement est tout simplement stupide.
Sean Middleditch
@SeanMiddleditch, les ingénieurs peuvent être payés plus que les artistes, mais la différence est - une fois qu'un ingénieur a écrit du code, il peut être réutilisé pour toujours, sans frais supplémentaires. Donc, même si cela peut prendre du temps pour développer un générateur de procédures qui peut être modifié, jusqu'au niveau de la brique individuelle - une fois cela fait, il serait libre d'utiliser. Si une entreprise paie des artistes pour des changements individuels, elle devra continuer à le faire pour chaque nouvelle exigence de changement qui se présente, contrairement à une solution automatisée.
Cyclops
2
@Cyclops: bonne chance avec cette super procédure magique qui vous permet de faire les détails intentionnels exigeants qu'un artiste peut. J'ai hâte de lire votre document de recherche révolutionnaire lors de sa sortie et de concéder éventuellement votre technologie über obsolète aux artistes. :)
Sean Middleditch
1

Eh bien, cela semble toujours être une excellente idée spécialement pour les jeux. Étant donné que vous pouvez générer des textures à la volée de manière procédurale afin que le monde autour du joueur soit plus naturel. Aucun big data n'est nécessaire. Il peut être utilisé pour augmenter même la résolution

Jan
la source
0

Vous avez le compromis typique de mémoire de temps . Eh bien, que cela vous plaise ou non, la génération procédurale échange le temps CPU pour la conservation de la mémoire. En fait, comme le stockage devient moins cher et que les gens veulent toujours des temps de chargement plus courts, la tendance est à l'inverse - les actifs prégénérés ou photographiés consomment de la mémoire en échange de la vitesse.

Un jpg se charge-t-il plus rapidement qu'une version générée de manière procédurale? Probablement, oui . Si le jpg est de 2 Mo et que vous le chargez une fois, pourquoi devriez-vous vous soucier de la procédure? Au moment de l'exécution, la texture prend quand même la même quantité de RAM (non compressée et chargée dans la mémoire GPU)

bobobobo
la source
Il est peu probable que JPEG se charge plus rapidement que la plupart des algorithmes de texture procédurale. Les temps d'accès au disque dépassent largement le temps de traitement CPU / GPU, et comme personne sensé n'utilise JPEG pour les textures et utilise des textures compressées plus grandes mais optimisées par GPU avec des couches mipmap précalculées, le temps de chargement du disque est encore pire pour les textures réelles. Il y a des raisons pour lesquelles les textures procédurales sont nulles (mentionnées dans d'autres réponses), mais le temps de chargement n'est généralement pas l'un d'entre eux. Je suis sûr que des exceptions existent pour les algorithmes particulièrement compliqués ou inefficaces, bien sûr.
Sean Middleditch
Ouais, comme .dds. Je viens d'utiliser JPG comme exemple. Mon point est que c'est la génération procédurale de pavés d'apparence fraîche, ou d'eau, ou d'arbres dans une forêt en utilisant des systèmes en L ou tout ce qui prend plus de temps (mais tient en 96k!) Que de simplement charger du contenu sur le disque, alors personne ne voudra y aller route, simplement pour réduire les temps de chargement.
bobobobo