{"id":277,"date":"2011-06-07T20:26:04","date_gmt":"2011-06-07T20:26:04","guid":{"rendered":"http:\/\/www.s2powered.com\/?p=277"},"modified":"2013-01-19T17:13:06","modified_gmt":"2013-01-19T17:13:06","slug":"s2engine-toward-realism","status":"publish","type":"post","link":"https:\/\/www.s2powered.com\/copiasito\/277\/s2engine-toward-realism\/profenix-news\/06\/2011\/","title":{"rendered":"S2ENGINE toward realism"},"content":{"rendered":"<p>As anticpated in the previous post during the last two weeks I have worked in order to speed-up engine fill rate optimizing shaders and reducing texture bandwidth requirements. \u00a0One big problem was the G-buffer dimension. Until now I used 4 x 64bit buffers + depth: this is too much if I want the engine run well at high resolutions.<!--more--><\/p>\n<p>The first think was to reduce the buffers from 4 to 3. How to make this if my deferred rendering system needs all information contained into the 4 buffers? Simple I need to change the rendering equation choosing one requiring less data. My choice fell on a <strong>physically correct bidirectional reflectance distri<\/strong><strong>bution function (BRDF), <\/strong>based on <strong>Blinn-Phong<\/strong> equation.<\/p>\n<p>The previous reflectance function required 4 parameter: specular pow, specular multiplier, fresnel pow and fresnel multiplier, i.e. an entire buffer (4 16bit channels).<\/p>\n<p>Well in the new equation\u00a0<strong>only one parameter is required<\/strong>: surface roughness (i.e. surface glossisness). With only this parameter the <strong>new equation<\/strong> can control the specular power, the glossisness and the fresnel reflection of the surface with a <strong>physically correct behaviour.<\/strong><\/p>\n<p>Thanks to this fact I\u00a0have been able to re-arrange the parameters into the buffers and reduce them from 4 to 3, also obtaining more realism and quality in rendering. With the new equation the previous specular-opacity map (stored inside the normalmap alpha channel) \u00a0become a real glossisness map. In other words the alpha channel of the normal map can control not only the specular intensity of the surface but also its specular power opening new possibilities to the artists that can control shininess of the surface on a per-pixel basis.<\/p>\n<p>See the images below: the tires of the jeep have less gloss than\u00a0rims, but they are rendered with the same material and textures.<\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_045.jpg\"><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_045.jpg\"><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_045.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-282\" title=\"Build2_045\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_045-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_045-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_045-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_045-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_045-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_044.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-281\" title=\"Build2_044\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_044-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_044-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_044-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_044-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_044-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p>The next pass has been reducing the bit depth of the buffers: from 64 to 32bit (8 bit per channel). So in the last version our G-buffer has a depth of 32&#215;3=96 bits instead of 64&#215;4=256 bits!!!\u00a0The effects of this reduction, together with some minor improvements of bloom and lens post-processing effects, are\u00a0\u00a0clearly visible: <strong>about 20-22 FPS at 1600&#215;900 resolution on an NVIDIA GTS 250 card with all post-processing effects enabled!!<\/strong><\/p>\n<p><span style=\"color: #0000ee;\"><span style=\"text-decoration: underline;\"><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_050.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-291\" title=\"Build2_050\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_050-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_050-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_050-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_050-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_050-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_049.jpg\"><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_049.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-290\" title=\"Build2_049\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_049-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_049-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_049-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_049-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_049-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/span><\/span><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_048.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-289\" title=\"Build2_048\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_048-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_048-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_048-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_048-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_048-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_047.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-288\" title=\"Build2_047\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_047-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_047-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_047-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_047-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_047-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p>Working on the G-buffer re-arranging I have found space to left the parameter for <strong>scattering (just like previous version) <\/strong>and I have also left 2 (TWO!!!) channels free\u00a0for future use. The scattering equation has been changed too. The new one is more attractive and\u00a0convincing. I have used it on trees and plants but also on clouds and smoke particles.<\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_046.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-299\" title=\"Build2_046\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_046-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_046-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_046-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_046-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_046-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_054.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-300\" title=\"Build2_054\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_054-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_054-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_054-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_054-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_054-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_052.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-302\" title=\"Build2_052\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_052-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_052-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_052-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_052-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_052-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_055.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-303\" title=\"Build2_055\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_055-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_055-150x150.jpg 150w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_055-100x100.jpg 100w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_055-120x120.jpg 120w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_055-80x80.jpg 80w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>To complete the rendering equation I&#8217;ve made some improvements also on the ambient lighting. In this new version all surfaces have ambient diffuse and specular reflections, the blurriness of ambient specular reflections of a surface can be controlled with the same parameter used for glossisness, changing this parameter you can see the surface become more\/less \u00a0metallic. The same equation have been applied also to alpha-blended and refractive surfaces.<\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_059.jpg\"><\/a><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_059.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-310\" title=\"Build2_059\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_059-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_059-300x200.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_059-600x400.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_059.jpg 768w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Other improvements: A global shadowmap for the terrain that gives it a more convincing look , a new smoke\/clouds shader and, most important, the new <strong>filmic tone mapping operator, <\/strong>also used into Battlefield 3 and uncharted games, which gives to the final image a movie-like feeling.<br \/>\n<a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_048.jpg\"><br \/>\n<\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_058.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-308\" title=\"Build2_058\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_058-1024x556.jpg\" alt=\"\" width=\"620\" height=\"336\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_058-1024x556.jpg 1024w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_058-600x326.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_058-300x163.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_058.jpg 1600w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_056.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-313\" title=\"Build2_056\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_056-1024x556.jpg\" alt=\"\" width=\"620\" height=\"336\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_056-1024x556.jpg 1024w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_056-600x326.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_056-300x163.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_056.jpg 1600w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_043.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-333\" title=\"Build2_043\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_043-1024x556.jpg\" alt=\"\" width=\"620\" height=\"336\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_043-1024x556.jpg 1024w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_043-600x326.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_043-300x163.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_043.jpg 1600w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_051.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-315\" title=\"Build2_051\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_051-1024x556.jpg\" alt=\"\" width=\"620\" height=\"336\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_051-1024x556.jpg 1024w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_051-600x326.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_051-300x163.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_051.jpg 1600w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_057.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-286\" title=\"Build2_057\" src=\"http:\/\/www.s2powered.com\/wp-content\/uploads\/2011\/06\/Build2_057-1024x556.jpg\" alt=\"\" width=\"620\" height=\"336\" srcset=\"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_057-1024x556.jpg 1024w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_057-600x326.jpg 600w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_057-300x163.jpg 300w, https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_057.jpg 1600w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>More improvements can be made but for now it&#8217;s just\u00a0unbelievable.<\/p>\n<p>This week will be the last before the build releasing, I&#8217;m now working on the new occlusion culling system (which will complete, together the frustrum culling discussed in the previous post, the overall new visibility culling system), and I&#8217;ll end up with some minor improvements I&#8217;ve\u00a0collected from the comunity feedbacks.<\/p>\n<p>Today S2ENGINE is closer to\u00a0reality&#8230;stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As anticpated in the previous post during the last two weeks I have worked in order to speed-up engine fill rate optimizing shaders and reducing texture bandwidth requirements. \u00a0One big problem was the G-buffer dimension. Until now I used 4 x 64bit buffers + depth: this is too much if I want the engine run&nbsp;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":286,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-profenix-news"],"jetpack_featured_media_url":"https:\/\/www.s2powered.com\/copiasito\/wp-content\/uploads\/2011\/06\/Build2_057.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/posts\/277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/comments?post=277"}],"version-history":[{"count":42,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/posts\/277\/revisions"}],"predecessor-version":[{"id":1151,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/posts\/277\/revisions\/1151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/media\/286"}],"wp:attachment":[{"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/media?parent=277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/categories?post=277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.s2powered.com\/copiasito\/wp-json\/wp\/v2\/tags?post=277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}