Je joue avec la modélisation 3D procédurale simple pour créer de minuscules bâtiments pour l'impression 3D. Un exemple:
Pour rendre les modèles plus lisibles à l'écran, j'ai mis en œuvre un mappage d'ombres de base pour une seule lumière directionnelle. Étant donné que ma scène ne change pas, je rend juste la carte d'ombre une fois à l'aide d'une boîte alignée sur l'axe de la scène pour déterminer quelles devraient être les limites de la carte d'ombre. Les ombres et les limites semblent avoir toutes les matrices correctes, mais se rapprocher un peu semble terrible:
D'après la lecture que j'ai faite, je comprends le panoramique de Peter et ce que je pourrais faire à ce sujet, mais les bords irréguliers, qui je crois est une forme d'alias projectif, semblent si mauvais que je pense que quelque chose ne va pas dans mon implémentation de base.
J'ai piraté le pixel shader pour montrer les limites du texel d'ombre:
J'ai un filtrage bilinéaire dans la texture (sans cela, je reçois une sérieuse acné d'ombre). Malheureusement, ma tentative de PCF a également échoué - elle semble tout aussi irrégulière:
Voici le cas d'échantillon unique avec filtrage bilinéaire désactivé:
Cela ressemble-t-il à un aliasing projectif "typique"? Le rendu dynamique de la carte d'ombre, en utilisant le tronc de vue coupé à la scène, éventuellement en cascade, pourrait-il résoudre le problème?
Edit: Ajout d'un gros plan de filtrage bilinéaire, comparaison post-ombre, juste pour montrer ce que j'obtiens. L'acné de mauvaise ombre apparaît en raison des bords intérieurs; Je modélise avec des blocs virtuels empilés et ne fais pas une opération d'union appropriée. D'après ma lecture, la mise en œuvre d'opérations booléennes sur les polyèdres n'est pas anodine, mais me permettra également d'implémenter des volumes d'ombre statiques ainsi que de nettoyer certains logiciels d'impression 3D.