Three.js: Ajout du support de shadow map pour RectAreaLights (brainstorming, R&D)

Créé le 28 mai 2018  ·  37Commentaires  ·  Source: mrdoob/three.js

description du problème

Il serait très utile pour le réalisme de prendre en charge les ombres sur RectAreaLights.

Je ne suis pas sûr de la meilleure technique à utiliser ici car je ne l'ai pas encore recherchée au-delà de quelques recherches rapides sur Google. Je ne sais pas encore quelle est la meilleure pratique acceptée dans l'industrie ?

Deux techniques simples auxquelles je peux penser :

  • on pourrait placer un PointLightShadowMap au centre d'une lumière de zone rectiligne et cela fonctionnerait en quelque sorte.
  • moins précis, on pourrait placer un SpotLightShadowMap avec un FOV assez élevé (plus de 120 degrés, mais moins de 180 degrés car cela le ferait échouer) au centre de la lumière de la zone rect et le diriger dans la direction de la lumière.

(Je pense qu'avec la carte des ombres de la lumière spot, vous pourrez peut-être obtenir de meilleurs résultats pour les lumières de grande surface si vous avez déplacé la carte des ombres derrière la surface de la lumière de la zone de sorte que le plan de coupe proche de l'avant dans le frustum de la carte des ombres soit à peu près le côté de la la lumière de la zone lorsqu'elle traversait le plan de la lumière de la zone. Je crois l'avoir lu une fois dans un article, mais je me souviens de la source.)

Enhancement

Commentaire le plus utile

Les ombres douces plus rapprochées en pourcentage de NVidia font un travail décent d'approximation des ombres lumineuses de la zone. Je jouais avec leur piratage dans une scène THREE.js ici: https://gkjohnson.github.io/threejs-sandbox/pcss/index.html. Il utilise une carte d'ombre de lumière directionnelle, pour le moment, mais un spotLight pourrait être meilleur.

Ils ne sont pas la solution parfaite, cependant - ils ont des artefacts lorsque les bords de l'ombre se rapprochent les uns des autres et nécessitent beaucoup d'échantillons pour obtenir une ombre vraiment lisse.

Tous les 37 commentaires

/ping @abelnation si vous avez des idées car vous êtes l'expert résident actuel de Area Light. :)

J'ai refactorisé le code d'éclairage de la zone et je le connais également. Pour la prise en charge de l'ombre, voir https://eheitzresearch.wordpress.com/705-2/.

Pour la prise en charge de l'ombre, voir https://eheitzresearch.wordpress.com/705-2/.

Intéressant. Je pense que cela peut être un peu trop gourmand en calcul pour WebGL à l'heure actuelle, car il suppose que le lancer de rayons est accéléré par le matériel. Malheureusement, il faudra probablement des années avant que cela n'arrive à WebGL.

Je suis d'avis que même si mes deux suggestions (ombres ponctuelles ou ponctuelles) ne sont pas physiquement précises en ce qui concerne les ombres douces, elles valent mieux que pas d'ombre et sont toutes les deux très rapides (aussi rapides que nos autres ombres au moins) et facile à mettre en œuvre (car le code existe déjà.)

@bhouston Oh, ouais... il y a aussi https://github.com/mrdoob/three.js/pull/13057.

Si vous lisez l'intégralité de la discussion, je pense que le consensus était d'ajouter la prise en charge des "cookies" à SpotLight , ce qui permettrait vraisemblablement une ombre rectangulaire.

Les ombres douces plus rapprochées en pourcentage de NVidia font un travail décent d'approximation des ombres lumineuses de la zone. Je jouais avec leur piratage dans une scène THREE.js ici: https://gkjohnson.github.io/threejs-sandbox/pcss/index.html. Il utilise une carte d'ombre de lumière directionnelle, pour le moment, mais un spotLight pourrait être meilleur.

Ils ne sont pas la solution parfaite, cependant - ils ont des artefacts lorsque les bords de l'ombre se rapprochent les uns des autres et nécessitent beaucoup d'échantillons pour obtenir une ombre vraiment lisse.

Ça a l'air génial ! Mais votre démo fonctionne avec seulement 6 FPS sur mon iMac ^^

J'obtiens 60fps sur une GTX 970m.

1 FPS sur mon Pixel 😢

Il existe déjà une implémentation pcss dans three.js que moi-même et oreshant
écrit il y a quelque temps.

Cordialement,
Ben Houston
http://Clara.io Modélisation et rendu 3D en ligne

Le sam. 21 juil. 2018, 23 h 02 Garrett Johnson [email protected]
a écrit:

Ombres douces plus proches en pourcentage de NVidia
http://developer.download.nvidia.com/shaderlibrary/docs/shadow_PCSS.pdf
faire un travail décent d'approximation des ombres lumineuses de la zone. je jouais avec
les pirater dans une scène THREE.js ici :
https://gkjohnson.github.io/threejs-sandbox/pcss/index.html. Il utilise un
carte d'ombre lumineuse directionnelle, pour le moment, mais un spotLight pourrait être
mieux.

Ils ne sont pas la solution parfaite, cependant - ils ont des artefacts quand
les bords d'ombre se rapprochent les uns des autres et nécessitent beaucoup d'échantillons pour obtenir un
ombre vraiment lisse.


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/mrdoob/three.js/issues/14161#issuecomment-406837539 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAj6_RuFJPv7y5DbEfJnDu26DB3cD2bhks5uI-tJgaJpZM4UQODd
.

Il existe déjà une implémentation pcss dans three.js que moi-même et oreshant avons écrite il y a quelque temps.

https://threejs.org/examples/#webgl_shadowmap_pcss

Cela fonctionne avec de beaux 60 FPS sur mon iMac ^^.

Il existe déjà une implémentation pcss dans three.js que moi-même et oreshant avons écrite il y a quelque temps.

je n'avais pas vu ça ! Ça à l'air bon. Je ne savais pas que vous pouviez générer des valeurs de type disque de poisson de cette façon - il semble que la distribution soit plus agréable et donne de meilleurs résultats que la façon dont j'utilisais. Je peux emprunter ça si ça ne te dérange pas !

1 FPS sur mon Pixel 😢

Ha! Cela ne fonctionnait pas non plus sur mon téléphone. Je ne l'ai pas du tout optimisé et il y a beaucoup de travail en cours dans les boucles qui pourraient être déplacées.

La mise en œuvre de @bhouston est cependant assez rapide. Peut-être y a-t-il une variante de cela qui peut être utilisée pour les ombres légères de zone? Ce serait bien d'avoir n'importe quel type de support d'ombre pour les lumières de zone afin que ce type d'implémentation puisse être plus facilement branché.

Les ombres douces plus rapprochées en pourcentage de NVidia font un travail décent d'approximation des ombres lumineuses de la zone. Je jouais avec leur piratage dans une scène THREE.js ici: https://gkjohnson.github.io/threejs-sandbox/pcss/index.html. Il utilise une carte d'ombre de lumière directionnelle, pour le moment, mais un spotLight pourrait être meilleur.

Ils ne sont pas la solution parfaite, cependant - ils ont des artefacts lorsque les bords de l'ombre se rapprochent les uns des autres et nécessitent beaucoup d'échantillons pour obtenir une ombre vraiment lisse.

Agréable! Ce n'est pas parfait mais ça a l'air mieux que pas d'ombre... J'obtiens 30fps sur mon Asus ROG Phone 2.
Et 45fps sur mon ordinateur portable graphique intégré.

Voici un exemple d'ombres raytracées dans three.js, seul le composant d'ombre est affiché dans ces vidéos.

60 + fps avec 1 échantillon d'ombre par pixel... Avec un filtrage intelligent, les résultats pourraient sembler plutôt bons.

https://youtu.be/O21mKUtMtSg
https://youtu.be/2Tn93hf9kNw

Cela pourrait être utilisé pour aider avec les ombres claires de la zone rectiligne.

Une démonstration Web en direct est en préparation.

En rapport

13908 Amélioration des ombres

14048 Ombres douces via l'échantillonnage de la source lumineuse

14051 Adoption d'un éclairage global photoréaliste progressif en trois.JS

Très sympa!

Problème connexe : je ne sais pas comment implémenter une sorte d'ombre avec le code IBL actuel.

Supposons que je souhaite ajouter un DirectLight dans l' exemple de la voiture, mais ignorez la source de lumière réelle et utilisez uniquement la carte d'ombre pour affecter le code IBL.

J'ai joué avec plusieurs effets de lancer de rayons.

  • Ombres - provenant de sources lumineuses directes, y compris les lumières rectilignes
  • Oclusion ambiante
  • Illumination globale

Sur les 3, je pense que le GI par pixel qui fonctionnerait avec IBL est le plus difficile à atteindre en temps réel.

Cependant, le GI par sommet et peut être possible à de bonnes fréquences d'images. Le code de lancer de rayons est écrit avec l'idée que les shaders de vertex et de fragments pourront l'utiliser.

@mrdoob , @WestLangley ,
Dans quel espace se trouvent les uniformes "pointLights[].position" ???
Je fais le lancer de rayons dans l'espace mondial mais les ombres ne semblent pas correspondre.

Annotation 2019-12-20 073556

Ok, après l'avoir examiné... On dirait que c'est dans l'espace de vue du modèle... Existe-t-il un bon moyen d'obtenir les positions des lumières dans l'espace mondial ?

Modifier WebGLRender pour envoyer à la fois dans le monde et dans l'espace de vue ?

Ok, je l'ai fait fonctionner avec une lumière ponctuelle... maintenant pour tester les éclairages rectilignes !

image

Existe-t-il un moyen de simplement jitter les sources lumineuses dans le volume d'émission et
accumuler afin d'obtenir des ombres douces dans quelque chose comme 32 rendus qui
vous venez d'accumuler ?

Je considère cela comme quelque chose qui fonctionne bien avec la gigue de la caméra sous-pixel
que j'ai accumulé dans l'exemple TAA Three.js.

Le sam. 21 déc. 2019 à 22 h 04 Samuel Sylvester [email protected]
a écrit:

Ok, je l'ai fait fonctionner avec une lumière ponctuelle... maintenant pour tester les éclairages rectilignes !

[image : image]
https://user-images.githubusercontent.com/10963749/71316445-4b18bb00-2435-11ea-94d9-c2f0f4116097.png


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7MQQB4SDPHJAOA5YXTQZ3KLVA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHPHXHQ#issuecom 6
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AAEPV7JKIZ62J3YXCVVYHVDQZ3KLVANCNFSM4FCA4DOQ
.

--

Ben HoustonCTO
*M : *+1-613-762-4113
[email protected]
Ottawa (Ont.)

[image : threekitlogo1568384278.png] https://www.threekit.com/
Créez une meilleure expérience client visuelle avec Threekit
https://www.threekit.com/

[image : Apprenez à adapter les visuels des produits à votre entreprise en pleine croissance]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

Pour être clair, je pense que la façon de trembler dans une lumière rectiligne est d'avoir un seul
lumière ponctuelle que vous déplacez le long de la surface d'émission. Vous avez besoin d'un bon
méthode d'échantillonnage comme Poisson Disk ou quelque chose,
https://www.google.com/search?q=Poisson+Disk. Et puis le résultat
les ombres doivent être douces et adaptées à une lumière rectiligne.

Bien que j'aie été confus sur le FOV, il faut régler le point lumineux,
et peut-être devriez-vous toujours le pointer dans la direction normale du rect
superficie de la zone ? Ce sont ces petits détails qui m'ont empêché de réellement
aller de l'avant avec une mise en œuvre de l'émission échantillonnée cumulative
ombres basées sur la source.

Le lundi 23 décembre 2019 à 9h00, Ben Houston [email protected] a écrit :

Existe-t-il un moyen de simplement jitter les sources lumineuses dans le volume d'émission
et accumulez afin d'obtenir des ombres douces dans quelque chose comme 32 rendus
que vous venez d'accumuler ?

Je considère cela comme quelque chose qui fonctionne bien avec la gigue de la caméra sous-pixel
que j'ai accumulé dans l'exemple TAA Three.js.

Le sam. 21 déc. 2019 à 22 h 04 Samuel Sylvester <
[email protected]> a écrit :

Ok, je l'ai fait fonctionner avec une lumière ponctuelle... maintenant pour tester les éclairages rectilignes !

[image : image]
https://user-images.githubusercontent.com/10963749/71316445-4b18bb00-2435-11ea-94d9-c2f0f4116097.png


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7MQQB4SDPHJAOA5YXTQZ3KLVA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHPHXHQ#issuecom 6
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AAEPV7JKIZ62J3YXCVVYHVDQZ3KLVANCNFSM4FCA4DOQ
.

--

Ben HoustonCTO
*M : *+1-613-762-4113
[email protected]
Ottawa (Ont.)

[image : threekitlogo1568384278.png] https://www.threekit.com/
Créez une meilleure expérience client visuelle avec Threekit
https://www.threekit.com/

[image : Apprenez à adapter les visuels des produits à votre entreprise en pleine croissance]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

--

Ben HoustonCTO
*M : *+1-613-762-4113
[email protected]
Ottawa (Ont.)

[image : threekitlogo1568384278.png] https://www.threekit.com/
Créez une meilleure expérience client visuelle avec Threekit
https://www.threekit.com/

[image : Apprenez à adapter les visuels des produits à votre entreprise en pleine croissance]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

@bhouston Je pense que https://github.com/mrdoob/three.js/issues/14048 est ce dont vous parlez.

J'ai aimé la démo avec la source d'éclairage à nœud torsadé. Je suppose que le problème que j'ai vu est que la réflexion de la source de lumière ne s'est jamais résolue sur l'image correcte.

Un avantage pour les ombres par lancer de rayons est qu'il peut être utilisé pour gérer les ombres transparentes. Il peut également être utilisé pour l'illumination globale et de nombreux autres effets d'éclairage.

@bhouston https://github.com/bhouston je pense #14048
https://github.com/mrdoob/three.js/issues/14048 est ce dont vous parlez
sur.

Désolé, j'ai tendance à oublier ce que j'ai suggéré précédemment, mais au moins je suis
cohérent.

J'ai aimé la démo avec la source d'éclairage à nœud torsadé. je suppose que le
problème que j'ai vu c'est que la réflexion de la source lumineuse n'a jamais
résolu à l'image correcte.

C'est parce qu'il ne fait pas un échantillonnage aléatoire mais un échantillonnage exhaustif
méthode - il fait également une source de lumière beaucoup plus difficile qu'un simple
zone rectangulaire. Sa méthode serait lente accumulative avec pixellisation
rendu ou lancer de rayons - c'est la méthode de l'échantillon qui était erronée, pas la
technique. Vous pouvez également plusieurs échantillons de lumière par rendu si vous le souhaitez
incliné. Je pense que 32 à 256 rendus sur le haut de gamme sont nécessaires,
en fonction du type de lumière et du nombre d'échantillons de lumière par rendu. À
60 fps c'est 1 à 4 secondes. Je le considère comme un "instantané" simplifié
solution de « radiosité ».

Vous avez raison, le lancer de rayons est incroyable. Je pensais juste que jittering
lumières est plus facile que de refaire tout le système d'éclairage, et puis vous aussi
avoir une bonne solution pour le temps réel, les ombres sont juste dures et puis dessus
arrêtez, ils s'adoucissent à la perfection, et l'algorithme de rendu ne change pas,
juste les choses tremblent et s'accumulent.

Le lundi 23 décembre 2019 à 11 h 03 Samuel Sylvester [email protected]
a écrit:

@bhouston https://github.com/bhouston je pense #14048
https://github.com/mrdoob/three.js/issues/14048 est ce dont vous parlez
sur.

J'ai aimé la démo avec la source d'éclairage à nœud torsadé. je suppose que le
problème que j'ai vu c'est que la réflexion de la source lumineuse n'a jamais
résolu à l'image correcte.

Un avantage pour les ombres par lancer de rayons est qu'il peut être utilisé pour gérer
ombres transparentes. Il peut également être utilisé pour l'illumination globale et de nombreux
autres effets d'éclairage.


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7L4ZVKQJILFWZQ6JE3Q2DOLPA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHRNA4I5WW2ZLOORPWSZGOEHRNA4I
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AAEPV7LXP5CSOMBZF2BMNR3Q2DOLPANCNFSM4FCA4DOQ
.

--

Ben HoustonCTO
*M : *+1-613-762-4113
[email protected]
Ottawa (Ont.)

[image : threekitlogo1568384278.png] https://www.threekit.com/
Créez une meilleure expérience client visuelle avec Threekit
https://www.threekit.com/

[image : Apprenez à adapter les visuels des produits à votre entreprise en pleine croissance]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

@bhouston J'aime la solution proposée dans #14048... surtout pour les géométries simples comme une lumière rectiligne.
Il semble que cette méthode devrait être assez facile à utiliser. Y a-t-il une fourchette de trois qui a cette solution?

En ce qui concerne le lancer de rayons... Sur le matériel de bureau, la solution de lancer de rayons fonctionne en temps réel à 1spp. Voir... https://youtu.be/amX3icmbpzY.

Je n'ai pas encore testé le mobile.

Dans les démos sur lesquelles j'ai travaillé, le terme d'éclairage est calculé à l'aide du code existant, mais l'ombre est tracée par rayons au lieu d'un mappage d'ombre.

@mrdoob , @bhouston
J'ai donc mis à jour la démo pour refléter la démo rtx de Nvidia de GDC 2018

Et je l'ai en cours d'exécution en temps réel sur mon ordinateur portable et sur mon téléphone portable...

Démo portable... https://youtu.be/MKCKXRVks3I
Démonstration de téléphone portable... https://youtu.be/P-cnT2hYNF4

J'ai également amélioré la distribution des échantillons d'ombres pour améliorer le réalisme des ombres

@mrdoob , @WestLangley , @bhouston et autres

J'ai des ombres pour les lumières de zone recto fonctionnant avec le lancer de rayons.

Screenshot_20200113-175554647
La démo présentée ici... https://youtu.be/tZmlb29OUBU
Possède des lumières ponctuelles et une lumière de zone rectiligne.

Certaines améliorations de la distribution des échantillons d'ombre sont en cours. De plus, il semble que pour les éclairages de zone, 2 ombres devront être calculées pour chaque éclairage. Une ombre diffuse et une ombre spéculaire.

Actuellement, seule l'ombre diffuse est calculée.

Je prévois de mettre en place un site Web en direct avec cette démo et également d'apporter ces modifications à mon fork de trois bientôt

C'est super ! Utilise-t-il également une seule texture de profondeur?

C'est super ! Utilise-t-il également une seule texture de profondeur?

@mrdoob merci ! Il s'agit en fait d'un lancer de rayons approprié, actuellement il utilise 2 textures. L'un stocke la géométrie de l'espace mondial et l'autre contient les données BVH.

Avec cette configuration, nous pourrions calculer l'occlusion ambiante RTX et avec quelques mises à jour, GI serait également possible !

Pour exécuter la démo dans le navigateur, voir... https://three-rtx.azurewebsites.net/

Remarque... Il s'agit d'un lancer de rayons et j'ai constaté que mon GPU intégré ne pouvait gérer qu'une seule source de lumière avec des ombres par lancer de rayons avec des fréquences d'images décentes. Mais lorsque j'ai activé mon RTX 2080, je pouvais avoir 2 sources lumineuses ray-tracées avec 16 spp par lumière à deux fois la fréquence d'images. C'est un peu moins de 64 fois plus rapide sur un GPU discret !

J'ai également essayé de l'exécuter sur mon téléphone et j'ai découvert que vous voudriez un vaisseau amiral 2019 ou mieux pour plus de 30 ips à 1080p.

Je pense qu'il y a quelques améliorations supplémentaires pour obtenir plus de performances et moins de bruit.

Je prévois de pousser le code que j'ai maintenant dans mon fork, puis de continuer à faire des ajustements.

Note : j'ai un tweak qui améliore les performances de plus de 50 % des fps moyens... cela fonctionne sur la première compilation des shaders, mais si une deuxième compilation est déclenchée, des choses amusantes commencent à se produire... Cela semble lié à mon utilisation de le pré-processeur

@sam-g-steel
C'est bien! Avez-vous l'intention d'ouvrir le travail en source ouverte à un moment donné ? Dans quelle mesure est-il évolutif ? Avez-vous effectué des tests avec des modèles de personnages ou de produits plus complexes ? Et j'imagine que le lancer de rayons ici ne fonctionne qu'avec des scènes statiques, n'est-ce pas ?

Un avantage pour les ombres par lancer de rayons est qu'il peut être utilisé pour gérer les ombres transparentes. Il peut également être utilisé pour l'illumination globale et de nombreux autres effets d'éclairage.

Cela semble être un plus pour cette technique. Je pense que vous pourriez obtenir de très bons résultats avec l'approche de gigue de # 14048.

@bhouston

c'est la méthode de l'échantillon qui était erronée, pas la technique.

Je pense que l'utilisation de quelque chose comme l'assistant MeshSurfaceSampler avec plusieurs lumières rendrait le résultat un peu plus agréable.

@gkjohnson

C'est bien! Avez-vous l'intention d'ouvrir le travail en source ouverte à un moment donné ?

Merci!!! Oui, je prévois de publier le code bientôt ! J'adorerais le voir intégré dans three.js !
À l'heure actuelle, la démo se compose de 2 parties principales. Une version personnalisée de trois qui envoie des informations d'éclairage dans la vue modèle et l'espace mondial que j'espère publier dans les prochains jours et un "plugin" three.js qui construit le BVH et génère les shaders qui effectuent le lancer de rayons.

Dans quelle mesure est-il évolutif ? Avez-vous effectué des tests avec des modèles de personnages ou de produits plus complexes ?

J'ai fait quelques tests pour voir comment ça se passe avec des scènes complexes... Les résultats que j'ai obtenus étaient plutôt prometteurs. Je travaille sur la mise à jour du site Web https://three-rtx.azurewebsites.net/ avec plus de démos bientôt. Je ne veux pas faire de réclamations avec des démos pour le sauvegarder.

Et j'imagine que le lancer de rayons ici ne fonctionne qu'avec des scènes statiques, n'est-ce pas ?

En fait, les scènes dynamiques sont prises en charge ! Je prévois de faire une démonstration bientôt aussi! à l'heure actuelle, les versions initiales de bvh prennent 300 ms et les versions suivantes prennent environ 10 ms sur le processeur monothread. Une chose à noter est que le code bvh pourrait être optimisé davantage.

Espérons que ce week-end je puisse publier le code. Cela a pris plus de temps que prévu, en partie parce que ma femme et moi venons d'accueillir notre troisième enfant dans le monde :)

@mrdoob , @gkjohnson
J'ai commencé à publier le code de lancer de rayons... Il peut être trouvé ici... https://github.com/sam-g-steel/three.js/tree/RTX

Tout le code n'a pas été validé... J'essaie de nettoyer un peu les choses. J'espère que j'aurai tout le code bientôt.

Je travaille toujours dessus...
J'ai trouvé des erreurs dans le code, donc je travaille sur plus de cas de test pour aider à comprendre ce qui ne va pas.

L'une des nouvelles démos est visible ici...
Screenshot_20200205-125510305_1
https://youtu.be/ZvoSuBi4rFE
@gkjohnson , Cette démo a des objets dynamiques à l'écran et aide à tester les performances de reconstruction BVH complètes.

J'espère commiter la suite ou les shaders "RTX"... Ce soir et le code BVH bientôt

Remarque : actuellement, les triangles sont les seules primitives prises en charge

mise à jour 08/02/2020
Le site Web a été mis à jour pour avoir la nouvelle démo...
La construction dynamique de BVH est désormais 40 % plus rapide qu'il y a 4 jours... d'autres optimisations sont à venir.
https://github.com/sam-g-steel/three.js/tree/RTX a été mis à jour avec plus de code.

Plus de mises à jour à venir !!!

Toujours en train de travailler sur la fourche de lancer de rayons... J'espère avoir plus à montrer dans quelques semaines.
J'ai travaillé sur le filtrage du bruit pour améliorer les fréquences d'images et la qualité d'image.

Voici quelques photos du filtre anti-bruit...
C'est toujours un travail en cours.

Mise à jour 28/03/2020
3-28-2020

Cette page vous a été utile?
0 / 5 - 0 notes