{"id":5523,"date":"2016-08-29T06:53:24","date_gmt":"2016-08-29T06:53:24","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=5523"},"modified":"2016-08-31T07:25:46","modified_gmt":"2016-08-31T07:25:46","slug":"comment-calculer-la-matrice-dun-billboard","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=5523","title":{"rendered":"Comment calculer la matrice de rotation d&rsquo;un Billboard"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/tag.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-5547\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/tag.jpg\" alt=\"tag\" width=\"400\" height=\"244\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/tag.jpg 400w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/tag-300x183.jpg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p><strong>Intro :<\/strong><\/p>\n<p><strong>Qu&rsquo;est-ce<\/strong> un billboard ? Un <strong>billboard<\/strong> est un objet 3D (en g\u00e9n\u00e9ral d&rsquo;apparence 2D) qui fait toujours face \u00e0 la cam\u00e9ra.<\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>&#8211; Savoir ce qu&rsquo;est une <em>matrice<\/em><\/p>\n<p>&#8211; Savoir <em>lire une matrice<\/em><\/p>\n<p>&#8211; Savoir en quoi consiste la <em>matrice de vue<\/em><\/p>\n<p><strong>Explications :<\/strong><\/p>\n<p><strong>Rappelez<\/strong> vous que la matrice de vue (celle de la cam\u00e9ra) est <strong>d\u00e9finie<\/strong> <strong>ainsi<\/strong> :<\/p>\n<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/viewmatrix.png\"><img decoding=\"async\" loading=\"lazy\" class=\"  alignnone wp-image-5541\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/viewmatrix.png\" alt=\"viewmatrix\" width=\"795\" height=\"248\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/viewmatrix.png 640w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/viewmatrix-300x94.png 300w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/viewmatrix-624x195.png 624w\" sizes=\"(max-width: 795px) 100vw, 795px\" \/><\/a><\/p>\n<p>En effet, cette matrice est construite \u00e0 partir de <strong>trois vecteurs<\/strong> :<\/p>\n<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/uprightlook.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5552\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/uprightlook.jpg\" alt=\"uprightlook\" width=\"221\" height=\"204\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/uprightlook.jpg 350w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/uprightlook-300x277.jpg 300w\" sizes=\"(max-width: 221px) 100vw, 221px\" \/><\/a><\/p>\n<p>Avec <strong>une origine<\/strong> (ainsi nomm\u00e9e \u00ab\u00a0Cam\u00e9ra\u00a0\u00bb) repr\u00e9sentant la <strong>position de celle-ci<\/strong> par rapport au rep\u00e8re commun \u00e0 tous les n\u0153uds de la sc\u00e8ne, cette derni\u00e8re concerne la <strong>matrice World<\/strong> (matrice de <em>monde<\/em>)<\/p>\n<p>Une fois construite, la <em>matrice de vue<\/em> est une matrice qui doit \u00eatre <strong>mise \u00e0 jour constamment<\/strong> dans la boucle de rendu.<\/p>\n<h3><strong>D\u00e9composition de la matrice View :<\/strong><\/h3>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BLookAt%7D_x+%3D+%5Ctextbf%7BView%7D_%7B02%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{LookAt}_x = \\textbf{View}_{02} ' title='\\vec{LookAt}_x = \\textbf{View}_{02} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BLookAt%7D_y+%3D+%5Ctextbf%7BView%7D_%7B12%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{LookAt}_y = \\textbf{View}_{12} ' title='\\vec{LookAt}_y = \\textbf{View}_{12} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BLookAt%7D_y+%3D+%5Ctextbf%7BView%7D_%7B22%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{LookAt}_y = \\textbf{View}_{22} ' title='\\vec{LookAt}_y = \\textbf{View}_{22} ' class='latex' \/><\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BRight%7D_x+%3D+%5Ctextbf%7BView%7D_%7B00%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Right}_x = \\textbf{View}_{00} ' title='\\vec{Right}_x = \\textbf{View}_{00} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BRight%7D_y+%3D+%5Ctextbf%7BView%7D_%7B10%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Right}_y = \\textbf{View}_{10} ' title='\\vec{Right}_y = \\textbf{View}_{10} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BRight%7D_y+%3D+%5Ctextbf%7BView%7D_%7B20%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Right}_y = \\textbf{View}_{20} ' title='\\vec{Right}_y = \\textbf{View}_{20} ' class='latex' \/><\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BUp%7D_x+%3D+%5Ctextbf%7BView%7D_%7B01%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Up}_x = \\textbf{View}_{01} ' title='\\vec{Up}_x = \\textbf{View}_{01} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BUp%7D_y+%3D+%5Ctextbf%7BView%7D_%7B11%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Up}_y = \\textbf{View}_{11} ' title='\\vec{Up}_y = \\textbf{View}_{11} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cvec%7BUp%7D_y+%3D+%5Ctextbf%7BView%7D_%7B21%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\vec{Up}_y = \\textbf{View}_{21} ' title='\\vec{Up}_y = \\textbf{View}_{21} ' class='latex' \/><\/p>\n<p>&nbsp;<\/p>\n<p>On <strong>normalise<\/strong> ensuite ces trois derniers vecteurs :<\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BLookAt%7D%7D_%7Bnorm%7D%3D%5Cfrac%7B%7B%5Cvec%7BLookAt%7D%7D%7D%7B%5C%7C%7B%5Cvec%7BLookAt%7D%7D%5C%7C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='{\\vec{LookAt}}_{norm}=\\frac{{\\vec{LookAt}}}{\\|{\\vec{LookAt}}\\|} ' title='{\\vec{LookAt}}_{norm}=\\frac{{\\vec{LookAt}}}{\\|{\\vec{LookAt}}\\|} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BRight%7D%7D_%7Bnorm%7D%3D%5Cfrac%7B%7B%5Cvec%7BRight%7D%7D%7D%7B%5C%7C%7B%5Cvec%7BRight%7D%7D%5C%7C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='{\\vec{Right}}_{norm}=\\frac{{\\vec{Right}}}{\\|{\\vec{Right}}\\|} ' title='{\\vec{Right}}_{norm}=\\frac{{\\vec{Right}}}{\\|{\\vec{Right}}\\|} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BUp%7D%7D_%7Bnorm%7D%3D%5Cfrac%7B%7B%5Cvec%7BUp%7D%7D%7D%7B%5C%7C%7B%5Cvec%7BUp%7D%7D%5C%7C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='{\\vec{Up}}_{norm}=\\frac{{\\vec{Up}}}{\\|{\\vec{Up}}\\|} ' title='{\\vec{Up}}_{norm}=\\frac{{\\vec{Up}}}{\\|{\\vec{Up}}\\|} ' class='latex' \/><\/p>\n<p>&nbsp;<\/p>\n<p>A noter que l&rsquo;on peut retrouver <strong>un<\/strong> vecteur <strong>connaissant<\/strong> les <strong>deux<\/strong> autres. Par exemple, l&rsquo;on veut retrouver le vecteur <img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BUp%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='{\\vec{Up}} ' title='{\\vec{Up}} ' class='latex' \/> connaissant <img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BRight%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='{\\vec{Right}} ' title='{\\vec{Right}} ' class='latex' \/> et <img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BLookAt%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='{\\vec{LookAt}} ' title='{\\vec{LookAt}} ' class='latex' \/>. On <strong>proc\u00e8de<\/strong> ainsi\u00a0 :<\/p>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%7B%5Cvec%7BUp%7D%7D+%3D+%7B%5Cvec%7BLookAt%7D%7D%5Ctimes%7B%5Cvec%7BRight%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='{\\vec{Up}} = {\\vec{LookAt}}\\times{\\vec{Right}} ' title='{\\vec{Up}} = {\\vec{LookAt}}\\times{\\vec{Right}} ' class='latex' \/>\n<p>&nbsp;<\/p>\n<p>Maintenant pour <strong>construire<\/strong> notre <em>Billboard<\/em> il nous faudra cr\u00e9er une matrice de rotation<em> <img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R} ' title='\\textbf{R} ' class='latex' \/>. <\/em>C&rsquo;est avec cette matrice de rotation que seront multipli\u00e9s toutes les vertices du <em>Billboard <\/em>de fa\u00e7on \u00e0 ce qu&rsquo;ils soient <strong>toujours en face<\/strong> de la cam\u00e9ra ! <em><br \/>\n<\/em><\/p>\n<p>On calcule la matrice <em><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R} ' title='\\textbf{R} ' class='latex' \/><\/em> de la fa\u00e7on suivante :<\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B0%2A%7D+%3D+%7B%5Cvec%7BRight%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='\\textbf{R}_{0*} = {\\vec{Right}} ' title='\\textbf{R}_{0*} = {\\vec{Right}} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B1%2A%7D+%3D+%7B%5Cvec%7BUp%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='\\textbf{R}_{1*} = {\\vec{Up}} ' title='\\textbf{R}_{1*} = {\\vec{Up}} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B2%2A%7D+%3D+%7B%5Cvec%7BLookAt%7D%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='\\textbf{R}_{2*} = {\\vec{LookAt}} ' title='\\textbf{R}_{2*} = {\\vec{LookAt}} ' class='latex' \/><\/p>\n<p>&nbsp;<\/p>\n<p>C&rsquo;est-\u00e0-dire de mani\u00e8re plus d\u00e9taill\u00e9e :<\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B01%7D+%3D+%5Cvec%7BRight_x%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{01} = \\vec{Right_x} ' title='\\textbf{R}_{01} = \\vec{Right_x} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B02%7D+%3D+%5Cvec%7BRight_y%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{02} = \\vec{Right_y} ' title='\\textbf{R}_{02} = \\vec{Right_y} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B03%7D+%3D+%5Cvec%7BRight_z%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{03} = \\vec{Right_z} ' title='\\textbf{R}_{03} = \\vec{Right_z} ' class='latex' \/><\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B11%7D+%3D+%5Cvec%7BUp_x%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{11} = \\vec{Up_x} ' title='\\textbf{R}_{11} = \\vec{Up_x} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B12%7D+%3D+%5Cvec%7BUp_y%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{12} = \\vec{Up_y} ' title='\\textbf{R}_{12} = \\vec{Up_y} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B13%7D+%3D+%5Cvec%7BUp_z%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{13} = \\vec{Up_z} ' title='\\textbf{R}_{13} = \\vec{Up_z} ' class='latex' \/><\/p>\n<p><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B21%7D+%3D+%5Cvec%7BLookAt_x%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{21} = \\vec{LookAt_x} ' title='\\textbf{R}_{21} = \\vec{LookAt_x} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B22%7D+%3D+%5Cvec%7BLookAt_y%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{22} = \\vec{LookAt_y} ' title='\\textbf{R}_{22} = \\vec{LookAt_y} ' class='latex' \/><br \/>\n<img src='https:\/\/s0.wp.com\/latex.php?latex=%5Ctextbf%7BR%7D_%7B23%7D+%3D+%5Cvec%7BLookAt_z%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\\textbf{R}_{23} = \\vec{LookAt_z} ' title='\\textbf{R}_{23} = \\vec{LookAt_z} ' class='latex' \/><\/p>\n<p>&nbsp;<\/p>\n<p>Voici le <strong>Vertex Shader<\/strong> qui applique le <strong>calcul<\/strong> en question :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nPS_INPUT VS(VS_INPUT input)\r\n{\r\n\u00a0\u00a0\u00a0 PS_INPUT output = (PS_INPUT)0;\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/\/ Extraction du LookAt vector\r\n\u00a0\u00a0 \u00a0float3 look;\r\n\u00a0\u00a0 \u00a0look.x = View[0][2];\r\n\u00a0\u00a0 \u00a0look.y = View[1][2];\r\n\u00a0\u00a0 \u00a0look.z = View[2][2];\r\n\u00a0\u00a0 \u00a0look = normalize(look);\u00a0\u00a0 \u00a0\r\n\r\n\u00a0\u00a0 \u00a0\/\/ Extraction du Right vector\r\n\u00a0\u00a0 \u00a0float3 right;\r\n\u00a0\u00a0 \u00a0right.x = View[0][0];\r\n\u00a0\u00a0 \u00a0right.y = View[1][0];\r\n\u00a0\u00a0 \u00a0right.z = View[2][0];\r\n\u00a0\u00a0 \u00a0right = normalize(right);\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/\/ D\u00e9termination du Up vector\r\n\u00a0\u00a0 \u00a0float3 up = cross(look, right);\r\n\u00a0\u00a0 \u00a0up = normalize(up);\r\n\r\n\u00a0\u00a0 \u00a0\/\/ Matrice de rotation qui fait face \u00e0 la cam\u00e9ra\r\n\u00a0\u00a0 \u00a0float3x3 R;\r\n\u00a0\u00a0 \u00a0R[0] = right;\r\n\u00a0\u00a0 \u00a0R[1] = up;\r\n\u00a0\u00a0 \u00a0R[2] = look;\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0float3 posW = mul(input.Pos, R);\r\n\r\n\u00a0\u00a0 \u00a0output.Pos = mul( float4(posW, 1.0f), World );\r\n\u00a0\u00a0 \u00a0output.Pos = mul( output.Pos, View );\r\n\u00a0\u00a0 \u00a0output.Pos = mul( output.Pos, Projection );\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0output.Color = input.Color;\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 output.Page = input.Page;\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 output.Tex = input.Tex;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 return output;\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Voici un <strong><em>Billboard<\/em> <\/strong>affich\u00e9 qui repr\u00e9sente une qu\u00eate disponible :<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/billboard.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5614\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/billboard.png\" alt=\"billboard\" width=\"344\" height=\"264\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/billboard.png 564w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/billboard-300x230.png 300w\" sizes=\"(max-width: 344px) 100vw, 344px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>R\u00e9sum\u00e9 :<\/strong><\/p>\n<p>Nous avons expliqu\u00e9 comment cr\u00e9er un <em>Billboard<\/em> en construisant une matrice de rotation sp\u00e9ciale qui tourne et qui fait toujours face \u00e0 la cam\u00e9ra.<\/p>\n<p><strong>R\u00e9f\u00e9rences :<\/strong><\/p>\n<p>&#8211; Des sujets issus de quelques forums Internet comme celui de www.gamedev.net<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro : Qu&rsquo;est-ce un billboard ? Un billboard est un objet 3D (en g\u00e9n\u00e9ral d&rsquo;apparence 2D) qui fait toujours face \u00e0 la cam\u00e9ra. Pr\u00e9requis : &#8211; Savoir ce qu&rsquo;est une matrice &#8211; Savoir lire une matrice &#8211; Savoir en quoi consiste la matrice de vue Explications : Rappelez vous que la matrice de vue (celle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5523"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5523"}],"version-history":[{"count":75,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5523\/revisions"}],"predecessor-version":[{"id":5678,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5523\/revisions\/5678"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}