Maison interface Web Tutoriel H5 Présentation de WebGL 3D en HTML5 (Partie 1) : le développement natif WebGL ouvre une nouvelle ère de compétences didactiques de rendu 3D de pages Web_html5

Présentation de WebGL 3D en HTML5 (Partie 1) : le développement natif WebGL ouvre une nouvelle ère de compétences didactiques de rendu 3D de pages Web_html5

May 16, 2016 pm 03:49 PM
3d webgl 渲染

WebGL ouvre une nouvelle ère de rendu 3D sur les pages Web, qui permet de restituer le contenu 3D directement dans le canevas sans aucun plug-in. WebGL est identique à l'API Canvas 2D. Il manipule les objets via des scripts, les étapes sont donc fondamentalement similaires : préparer le contexte de travail, préparer les données, dessiner l'objet dans le canevas et le restituer. La différence avec la 2D est que la 3D implique davantage de connaissances, telles que le monde, la lumière, la texture, la caméra, la matrice et d'autres connaissances professionnelles. Il existe un bon tutoriel chinois sur WebGL, qui est le premier lien dans la référence d'utilisation ci-dessous, je ne ferai donc rien à ce sujet ici. Le contenu suivant n'est qu'un bref résumé du contenu d'apprentissage.

Prise en charge du navigateur
Étant donné que Microsoft a son propre plan de développement graphique et n'a pas pris en charge WebGL, IE n'est actuellement pas en mesure d'exécuter WebGL, sauf pour installer des plug-ins. Pour les autres navigateurs grand public tels que Chrome, FireFox, Safari, Opera, etc., installez simplement la dernière version. En plus d'installer le dernier navigateur, vous devez également vous assurer que le pilote de la carte graphique est également à jour.
Après les avoir installés, vous pouvez ouvrir le navigateur et saisir l'URL suivante pour vérifier la prise en charge du navigateur pour WebGL : http://webglreport.sourceforge.net/.

Si vous ne parvenez toujours pas à exécuter WebGL après avoir installé normalement les navigateurs ci-dessus, vous pouvez essayer de forcer l'activation de la prise en charge de WebGL. La méthode d'ouverture est la suivante :
Navigateur Chrome
Nous devons ajouter certains paramètres de démarrage à Chrome. Les étapes spécifiques suivantes prennent le système d'exploitation Windows comme exemple : Recherchez le raccourci de Chrome. navigateur, cliquez avec le bouton droit sur le raccourci Méthode, sélectionnez Propriétés ; dans la zone cible, après les guillemets derrière chrome.exe, ajoutez le contenu suivant :

--enable-webgl--ignore-gpu-blacklist--allow-file-access-from-files

Fermez Chrome après avoir cliqué sur OK, puis utilisez ce raccourci pour lancer le navigateur Chrome.
La signification de plusieurs paramètres est la suivante :
--enable-webgl signifie activer le support WebGL
--ignore-gpu-blacklist signifie ignorer la liste noire du GPU, ce qui signifie qu'il y a des graphiques ; cartes et GPU Parce qu'il est trop ancien et pour d'autres raisons, il n'est pas recommandé d'exécuter WebGL. Ce paramètre permet au navigateur d'ignorer cette liste noire et de forcer WebGL à s'exécuter
--allow-file-access-from-files signifie ; pour permettre le chargement local des ressources. Si vous n'êtes pas un développeur WebGL et que vous n'avez pas besoin de développer et de déboguer WebGL, mais que vous souhaitez simplement jeter un œil à la démo WebGL, vous n'avez pas besoin d'ajouter ce paramètre.

Navigateur Firefox
Utilisateurs de Firefox, veuillez saisir "about:config" dans la barre d'adresse du navigateur, appuyez sur Entrée, puis recherchez "webgl" dans le filtre (filtre) et remplacez webgl Définissez .force-enabled sur true ; définissez webgl.disabled sur false ; recherchez "security.fileuri.strict_origin_policy" dans le filtre et définissez security.fileuri.strict_origin_policy sur false ; puis fermez toutes les fenêtres Firefox actuellement ouvertes, redémarrez Firefox.
Les deux premiers paramètres visent à forcer l'activation de la prise en charge de WebGL, et le dernier paramètre security.fileuri.strict_origin_policy consiste à autoriser le chargement de ressources à partir de sources locales. Si vous n'êtes pas un développeur WebGL, vous n'avez pas besoin de le faire. développer et déboguer WebGL, mais je veux juste jeter un œil à la démo WebGL, alors vous n'avez pas besoin de définir cet élément.

Navigateur Safari
Recherchez « Propriétés » → « Avancé » dans le menu, sélectionnez « Afficher le menu de développement », puis allez dans le menu « Développer » et sélectionnez « Activer WebGL ».

Étapes de développement

Le code suivant résume simplement les concepts pertinents. Il provient du tutoriel chinois de la référence et implique davantage de connaissances en 3D. Les étudiants intéressés peuvent accéder directement aux tutoriels de chinois dans la référence pratique, qui sont beaucoup plus détaillés et précis que ce que j'explique ici. Les étudiants qui participent au jeu peuvent simplement y jeter un œil sans approfondir la signification de chaque ligne de code.


Préparation
Inutile de dire qu'il s'agit d'ajouter un élément de canevas à la page en tant que conteneur de rendu. Par exemple :

Copier le code
Le code est le suivant :



Votre navigateur ne semble pas prendre en charge l'élément canvas HTML5.

< /body>

Il est temps de commencer officiellement à écrire le script. Tout d'abord, jetez un œil à l'entrée du programme et à sa structure globale :

Copiez le code
Le code est le suivant :

functionstart(){
varcanvas=document.getElementById("glcanvas");
initGL(canvas);
initShaders() ;
initBuffers();
gl.clearColor(0.0,0.0,0.0,1.0);
gl.enable(gl.DEPTH_TEST);
drawScene();
}

Les différentes méthodes présentées ici représentent les étapes typiques du dessin WebGL :

Étape 1 : Initialiser l'environnement de travail WebGL - initGL
Le code de cette méthode est le suivant :

Copier le code
Le code est le suivant :

vargl;
functioninitGL(canvas) {
gl=null;
try{
//Essayez de saisir le contexte standard. En cas d'échec, repli sur expérimental.
gl=canvas.getContext("webgl")||canvas.getContext("experimental-webgl");
>
catch(e){} //Si nous n'avons pas de contexte GL, abandonnez-le maintenant
if(!gl){
alert("UnabletoinitializeWebGL. Yourbrowsermaynotsupportit.");
}
}

Cette méthode est très simple. Il s'agit d'obtenir l'environnement de dessin WebGL. Vous devez passer le paramètre "webgl" à la méthode canvas.getContext. Cependant, puisque le standard WebGL actuel ne l'est pas. finalisés, les paramètres utilisés dans la phase expérimentale sont tous "experimental-webgl". Bien sûr, vous pouvez également appeler directement canvas.getContext("experimental-webgl") Une fois la norme définie, vous pouvez modifier un autre code.

Étape 2 : Initialiser les Shaders - initShaders
Le concept de shader est relativement simple, pour le dire franchement, il s'agit d'une instruction de fonctionnement de la carte graphique. La construction d'une scène 3D nécessite une grande quantité de calculs de couleur, de position et d'autres informations. Si ces calculs sont effectués par logiciel, la vitesse sera très lente. Par conséquent, laisser la carte graphique calculer ces opérations est très rapide ; la manière d’effectuer ces calculs est spécifiée par le shader. Le code du shader est écrit dans un langage de shader appelé GLSL, que nous ne décrirons pas ici.
Les shaders peuvent être définis en HTML et utilisés dans le code. Bien entendu, il en va de même si vous utilisez une chaîne pour définir un shader dans votre programme.
Regardons d'abord la partie définition :

Copiez le code
Le code est le suivant :


precisionmediumpfloat;
varyingvec4vColor;
voidmain(void){
gl_FragColor =vColor;
}


attributevec3aVertexPosition;
attributevec4aVertexColor;
uniformmat4uMVMatrix;
uniformmat4uPMatrix;
varyingvec4vColor;
voidmain(void){
gl_Position=uPMatrix*uMVMatrix*vec4(aVertexPosition,1.0);
vColor=aVertexColor;
}
< /script>

Il y a deux shaders ici : le shader de visage et le shader de sommet.
Concernant ces deux shaders, il faut expliquer ici que les modèles 3D dans les ordinateurs sont essentiellement décrits par des points combinés avec des patchs triangulaires. Le vertex shader doit traiter les données de ces points, et le surface shader est par interpolation, le. les données des points sur le patch triangulaire sont traitées.
Le vertex shader défini ci-dessus définit la méthode de calcul de la position et de la couleur du sommet tandis que le surface shader définit la méthode de calcul de la couleur du point d'interpolation ; Dans les scénarios d'application réels, des effets tels que le traitement de la lumière dans le shader seront également impliqués.
Définit les shaders, vous pouvez les retrouver dans le programme et les utiliser :

Copier le code
Le code est le suivant suit :

varshaderProgram;
functioninitShaders(){
varfragmentShader=getShader(gl,"shader-fs");
varvertexShader=getShader(gl,"shader-vs " );
shaderProgram=gl.createProgram();
gl.attachShader(shaderProgram,vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);
if(!gl.getProgramParameter(shaderProgram,gl.LINK_STATUS)){
alert("Couldnotinitialiseshaders");
}
gl.useProgram(shaderProgram);
shaderProgram.vertexPositionAttribute=gl.getAttribLocation ( shaderProgram, "aVertexPosition");
gl.enableVertexAttribArray(shaderProgram.vertexPositionAttribute);
shaderProgram.vertexColorAttribute=gl.getAttribLocation(shaderProgram, "aVertexColor");
shaderProgram.pMatrixUniform=gl.getUniformLocation(shaderProgram, "uPMatrix");
shaderProgram.mvMatrixUniform=gl.getUniformLocation(shaderProgram,"uMVMatrix");
}


Le shader est là, mais comment laisser la carte graphique l'exécuter ? Le programme est ce genre de pont. C'est le code binaire natif de WebGL. Sa fonction est essentiellement de laisser la carte graphique exécuter le code du shader pour le rendu. les données du modèle spécifiées.
Une méthode auxiliaire getShader est également utilisée ici. Cette méthode consiste à parcourir le document HTML, à trouver la définition du shader et à créer le shader après avoir obtenu la définition. Je n'entrerai pas dans les détails ici :

Copier le code
Le code est le suivant :

functiongetShader(gl,id){
varshaderScript,theSource,currentChild,shader;
shaderScript=document.getElementById(id);
if(!shaderScript){
returnnull;
}
theSource="";
currentChild =shaderScript.firstChild;
while (currentChild){
if(currentChild.nodeType==currentChild.TEXT_NODE){
theSource =currentChild.textContent;
}
currentChild=currentChild.nextSibling;
}
if( shaderScript.type=="x-shader/x-fragment"){
shader=gl.createShader(gl.FRAGMENT_SHADER);
}elseif(shaderScript.type== "x-shader/x-vertex" ){
shader=gl.createShader(gl.VERTEX_SHADER);
}else{
//Unknownshadertype
returnnull;
}
gl .shaderSource(shader,theSource);
//Compiletheshaderprogram
gl.compileShader(shader);
//Seeifitcompiledsuccessfully
if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){
alert("Anerroroccurredcompilingtheshaders:" gl. getShaderInfoLog(shader));
returnnull;
>
returnshader;
}

Étape 3 : Créer/ charger les données du modèle - initBuffers
Dans ces petits exemples, les données du modèle sont essentiellement générées directement dans le programme réel, ces données doivent être chargées à partir du modèle :

. Copiez le code
Le code est le suivant :

vartriangleVertexPositionBuffer;
vartriangleVertexColorBuffer;
functioninitBuffers(){
triangleVertexPositionBuffer=gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER,triangleVertexPositionBuffer);
varvertices=[
0.0,1.0,0.0,
-1.0,-1.0,0.0,
1.0,-1.0,0.0
];
gl.bufferData(gl.ARRAY_BUFFER,newFloat32Array(vertices),gl.STATIC_DRAW);
triangleVertexPositionBuffer.itemSize=3;
triangleVertexPositionBuffer.numItems=3 ;
triangleVertexColorBuffer=gl.createBuffer( );
gl.bindBuffer(gl.ARRAY_BUFFER,triangleVertexColorBuffer);
varcolors=[
1.0,0.0,0.0,1.0,
0.0,1.0, 0.0,1.0,
0.0,0.0 ,1.0,1.0
];
gl.bufferData(gl.ARRAY_BUFFER,newFloat32Array(colors),gl.STATIC_DRAW);
triangleVertexColorBuffer.itemSize=4;
triangleVertexColorBuffer.numItems=3;
}

Le code ci-dessus crée les sommets du triangle et les données de couleur des sommets et les place dans le tampon.

Étape 4 : Rendu - drawScene
Après avoir préparé les données, remettez-les simplement à WebGL pour le rendu. La méthode gl.drawArrays est appelée ici. Regardez le code :

Copiez le code
Le code est le suivant :

functiondrawScene(){
gl.viewport(0,0,gl.viewportWidth,gl.viewportHeight);
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);
pMatrix=okMat4Proj(45.0,gl .viewportWidth/gl.viewportHeight ,0.1,100.0);
mvMatrix=okMat4Trans(-1.5,0.0,-7.0);
gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);
gl.vertexAttribPointer(shaderProgram) .vertexPositionAttribute, triangleVertexPositionBuffer.ite mSize ,gl.FLOAT,false,0,0);
gl.bindBuffer(gl.ARRAY_BUFFER,triangleVertexColorBuffer);
gl.vertexAttribPointer(shaderProgram.vertexColorAttribute,triangleVertexColorBuffer.itemSize,gl. FLOAT,false,0,0 );
setMatrixUniforms();
gl.drawArrays(gl.TRIANGLES,0,triangleVertexPositionBuffer.numItems);
}

Cette fonction définit d'abord l'arrière-plan du monde 3D en noir, puis définit la matrice de projection, définit la position de l'objet à dessiner, puis dessine l'objet en fonction du sommet et des données de couleur dans le tampon. Il existe également des méthodes auxiliaires pour générer des matrices de projection et des rectangles de vue de modèle (en utilisant les méthodes auxiliaires matricielles de la bibliothèque graphique Oak3D) qui n'ont pas grand-chose à voir avec le sujet et ne seront pas expliquées en détail ici.
En gros, c'est tout le processus. Des textures, des lumières, etc. plus complexes sont toutes implémentées en ajoutant certaines fonctionnalités WegGL sur cette base. Veuillez vous référer au didacticiel chinois suivant pour des exemples détaillés.

Et si ? Qu'est-ce que ça fait de développer en utilisant WebGL natif ? Non seulement vous devez avoir des connaissances approfondies en 3D, mais vous devez également connaître divers détails de mise en œuvre. WebGL fait cela pour s'adapter de manière flexible à divers scénarios d'application, mais pour la plupart des non-professionnels comme moi, de nombreux détails n'ont pas besoin d'être connus. Cela a donné naissance à diverses bibliothèques de classes qui aident au développement, comme la bibliothèque Oak3D utilisée dans cette section (afin de démontrer le développement WebGL, seule la méthode auxiliaire matricielle est utilisée dans l'exemple). La section suivante présentera une bibliothèque graphique Three.js couramment utilisée.

Référence pratique :
Tutoriel chinois : http://www.hiwebgl.com/?p=42

Centre de développement : https://developer.mozilla.org/en/WebGL

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi le Gaussian Splatting est-il si populaire dans la conduite autonome que le NeRF commence à être abandonné ? Pourquoi le Gaussian Splatting est-il si populaire dans la conduite autonome que le NeRF commence à être abandonné ? Jan 17, 2024 pm 02:57 PM

Écrit ci-dessus et compréhension personnelle de l'auteur Le Gaussiansplatting tridimensionnel (3DGS) est une technologie transformatrice qui a émergé dans les domaines des champs de rayonnement explicites et de l'infographie ces dernières années. Cette méthode innovante se caractérise par l’utilisation de millions de gaussiennes 3D, ce qui est très différent de la méthode du champ de rayonnement neuronal (NeRF), qui utilise principalement un modèle implicite basé sur les coordonnées pour mapper les coordonnées spatiales aux valeurs des pixels. Avec sa représentation explicite de scènes et ses algorithmes de rendu différenciables, 3DGS garantit non seulement des capacités de rendu en temps réel, mais introduit également un niveau de contrôle et d'édition de scène sans précédent. Cela positionne 3DGS comme un révolutionnaire potentiel pour la reconstruction et la représentation 3D de nouvelle génération. À cette fin, nous fournissons pour la première fois un aperçu systématique des derniers développements et préoccupations dans le domaine du 3DGS.

En savoir plus sur les emojis 3D Fluent dans Microsoft Teams En savoir plus sur les emojis 3D Fluent dans Microsoft Teams Apr 24, 2023 pm 10:28 PM

N'oubliez pas, surtout si vous êtes un utilisateur de Teams, que Microsoft a ajouté un nouveau lot d'émojis 3DFluent à son application de visioconférence axée sur le travail. Après que Microsoft a annoncé des emojis 3D pour Teams et Windows l'année dernière, le processus a en fait permis de mettre à jour plus de 1 800 emojis existants pour la plate-forme. Cette grande idée et le lancement de la mise à jour des emoji 3DFluent pour les équipes ont été promus pour la première fois via un article de blog officiel. La dernière mise à jour de Teams apporte FluentEmojis à l'application. Microsoft affirme que les 1 800 emojis mis à jour seront disponibles chaque jour.

CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne Mar 26, 2024 pm 12:41 PM

Écrit ci-dessus et compréhension personnelle de l'auteur : À l'heure actuelle, dans l'ensemble du système de conduite autonome, le module de perception joue un rôle essentiel. Le véhicule autonome roulant sur la route ne peut obtenir des résultats de perception précis que via le module de perception en aval. dans le système de conduite autonome, prend des jugements et des décisions comportementales opportuns et corrects. Actuellement, les voitures dotées de fonctions de conduite autonome sont généralement équipées d'une variété de capteurs d'informations de données, notamment des capteurs de caméra à vision panoramique, des capteurs lidar et des capteurs radar à ondes millimétriques pour collecter des informations selon différentes modalités afin d'accomplir des tâches de perception précises. L'algorithme de perception BEV basé sur la vision pure est privilégié par l'industrie en raison de son faible coût matériel et de sa facilité de déploiement, et ses résultats peuvent être facilement appliqués à diverses tâches en aval.

Choisir une caméra ou un lidar ? Une étude récente sur la détection robuste d'objets 3D Choisir une caméra ou un lidar ? Une étude récente sur la détection robuste d'objets 3D Jan 26, 2024 am 11:18 AM

0. Écrit à l'avant&& Compréhension personnelle que les systèmes de conduite autonome s'appuient sur des technologies avancées de perception, de prise de décision et de contrôle, en utilisant divers capteurs (tels que caméras, lidar, radar, etc.) pour percevoir l'environnement et en utilisant des algorithmes et des modèles pour une analyse et une prise de décision en temps réel. Cela permet aux véhicules de reconnaître les panneaux de signalisation, de détecter et de suivre d'autres véhicules, de prédire le comportement des piétons, etc., permettant ainsi de fonctionner en toute sécurité et de s'adapter à des environnements de circulation complexes. Cette technologie attire actuellement une grande attention et est considérée comme un domaine de développement important pour l'avenir des transports. . un. Mais ce qui rend la conduite autonome difficile, c'est de trouver comment faire comprendre à la voiture ce qui se passe autour d'elle. Cela nécessite que l'algorithme de détection d'objets tridimensionnels du système de conduite autonome puisse percevoir et décrire avec précision les objets dans l'environnement, y compris leur emplacement,

Paint 3D sous Windows 11 : guide de téléchargement, d'installation et d'utilisation Paint 3D sous Windows 11 : guide de téléchargement, d'installation et d'utilisation Apr 26, 2023 am 11:28 AM

Lorsque les rumeurs ont commencé à se répandre selon lesquelles le nouveau Windows 11 était en développement, chaque utilisateur de Microsoft était curieux de savoir à quoi ressemblerait le nouveau système d'exploitation et ce qu'il apporterait. Après de nombreuses spéculations, Windows 11 est là. Le système d'exploitation est livré avec une nouvelle conception et des modifications fonctionnelles. En plus de quelques ajouts, il s’accompagne de fonctionnalités obsolètes et supprimées. L'une des fonctionnalités qui n'existe pas dans Windows 11 est Paint3D. Bien qu'il propose toujours Paint classique, idéal pour les dessinateurs, les griffonneurs et les griffonneurs, il abandonne Paint3D, qui offre des fonctionnalités supplémentaires idéales pour les créateurs 3D. Si vous recherchez des fonctionnalités supplémentaires, nous recommandons Autodesk Maya comme le meilleur logiciel de conception 3D. comme

Comment rendre une vue de dessus orthogonale dans Kujiale_Tutorial sur le rendu d'une vue de dessus orthogonale dans Kujiale Comment rendre une vue de dessus orthogonale dans Kujiale_Tutorial sur le rendu d'une vue de dessus orthogonale dans Kujiale Apr 02, 2024 pm 01:10 PM

1. Ouvrez d'abord le plan de conception à rendre dans Kujiale. 2. Ensuite, ouvrez le rendu de la vue de dessus dans le menu de rendu. 3. Cliquez ensuite sur Orthogonal dans les paramètres des paramètres de l'interface de rendu de la vue de dessus. 4. Enfin, après avoir ajusté l'angle du modèle, cliquez sur Rendu maintenant pour afficher la vue de dessus orthogonale.

Obtenez une femme virtuelle en 3D en 30 secondes avec une seule carte ! Text to 3D génère un humain numérique de haute précision avec des détails de pores clairs, se connectant de manière transparente à Maya, Unity et d'autres outils de production. Obtenez une femme virtuelle en 3D en 30 secondes avec une seule carte ! Text to 3D génère un humain numérique de haute précision avec des détails de pores clairs, se connectant de manière transparente à Maya, Unity et d'autres outils de production. May 23, 2023 pm 02:34 PM

ChatGPT a injecté une dose de sang de poulet dans l’industrie de l’IA, et tout ce qui était autrefois impensable est devenu aujourd’hui une pratique de base. Le Text-to-3D, qui continue de progresser, est considéré comme le prochain point chaud dans le domaine de l'AIGC après la diffusion (images) et le GPT (texte), et a reçu une attention sans précédent. Non, un produit appelé ChatAvatar a été mis en version bêta publique discrète, recueillant rapidement plus de 700 000 vues et attention, et a été présenté sur Spacesoftheweek. △ChatAvatar prendra également en charge la technologie Imageto3D qui génère des personnages stylisés en 3D à partir de peintures originales à perspective unique/multi-perspective générées par l'IA. Le modèle 3D généré par la version bêta actuelle a reçu une large attention.

Une interprétation approfondie de l'algorithme de perception visuelle 3D pour la conduite autonome Une interprétation approfondie de l'algorithme de perception visuelle 3D pour la conduite autonome Jun 02, 2023 pm 03:42 PM

Pour les applications de conduite autonome, il est finalement nécessaire de percevoir des scènes 3D. La raison est simple : un véhicule ne peut pas conduire sur la base des résultats de perception obtenus à partir d’une image. Même un conducteur humain ne peut pas conduire sur la base d’une image. Étant donné que la distance de l'objet et les informations sur la profondeur de la scène ne peuvent pas être reflétées dans les résultats de perception 2D, ces informations sont la clé permettant au système de conduite autonome de porter des jugements corrects sur l'environnement. De manière générale, les capteurs visuels (comme les caméras) des véhicules autonomes sont installés au-dessus de la carrosserie du véhicule ou sur le rétroviseur intérieur. Peu importe où elle se trouve, la caméra obtient la projection du monde réel dans la vue en perspective (PerspectiveView) (du système de coordonnées mondiales au système de coordonnées de l'image). Cette vue est très similaire au système visuel humain,

See all articles