{"id":202,"date":"2018-05-04T01:35:18","date_gmt":"2018-05-03T22:35:18","guid":{"rendered":"http:\/\/kadircenk.com\/blog\/?p=202"},"modified":"2019-02-07T19:38:10","modified_gmt":"2019-02-07T16:38:10","slug":"trace-the-ray-part-5-hdr-rendering","status":"publish","type":"post","link":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/","title":{"rendered":"Trace the Ray \u2013 Part 5 (HDR Rendering)"},"content":{"rendered":"<p>Hey trace-masters, High Dynamic Range rendering is here!<\/p>\n<p>In my fifth assignment, my task was to implement:<\/p>\n<ul>\n<li>HDR (High Dynamic Range) rendering capability, which includes\n<ul>\n<li>Exporting images as <strong>.exr<\/strong> files, and<\/li>\n<li>Performing <strong>tonemapping\u00a0<\/strong>operation to map HDR images to LDR (Low Dynamic Range), so that their approximate appearances can be shown on non-HDR screens.<\/li>\n<\/ul>\n<\/li>\n<li>Two new light types, which are\n<ul>\n<li>Directional light<\/li>\n<li>Spot light<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>In this post, we will examine them together!<\/p>\n<p><!--more--><\/p>\n<h4>Directional Light<\/h4>\n<p>Directional light does not have a position, but a fixed direction and radiance value defined to be used at any place inside the scene. When light calculations are being done during ray tracing process, the radiance value of the light is used without any attenuation; and shadow ray directions are calculated by simply negating the direction value of the light.<\/p>\n<p>Below are my outputs:<\/p>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"203\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_directional\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_directional\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png\" class=\"aligncenter wp-image-203 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_directional.xml\n(800x800)\n\/w 8 thrd, no MSAA\n1 cube, scaled to x2.<\/pre>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"204\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_directional-2\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_directional\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1.png\" class=\"aligncenter wp-image-204 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional-1-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_directional.xml\n(800x800)\n\/w 8 thrd, no MSAA\n3 cubes, closer one is scaled to x2,\nFurther ones are not scaled.<\/pre>\n<p>Below is the output of the same scene, but this time using a Point Light:<\/p>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"209\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_point\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_point\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point.png\" class=\"aligncenter wp-image-209 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<h4>Spot Light<\/h4>\n<p>Spot light have\u00a0<strong>CoverageAngle <\/strong>and\u00a0<strong>FalloffAngle\u00a0<\/strong>values defined in addition to position, direction and intensity values. CoverageAngle defines the angle in which the area under it will be lit. FalloffAngle defines the angle after which the intensity of the light starts to decrease in a non-linear fashion until CoverageAngle is reached. That non-linear decrease provides a nice transition between the area lit and the area unlit.<\/p>\n<p>I think Spot Light is the coolest light type among the light types we&#8217;ve encountered so far. By checking my output images below, you will understand why I think so:<\/p>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"205\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/dragon_spot_light_msaa\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dragon_spot_light_msaa\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa.png\" class=\"aligncenter wp-image-205 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>dragon_spot_light_msaa.xml\n(800x800)\n\/w 8 thrd, 100MSAA\nCoverageAngle: 10\nFalloffAngle: 8<\/pre>\n<h4><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"210\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/dragon_spot_light_msaa-2\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dragon_spot_light_msaa\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1.png\" class=\"aligncenter wp-image-210 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/dragon_spot_light_msaa-1-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/h4>\n<pre>dragon_spot_light_msaa.xml\n(800x800)\n\/w 8 thrd, 100MSAA\nCoverageAngle: 16\nFalloffAngle: 13<\/pre>\n<h4>Rendering HDR Images and Exporting them in .exr format<\/h4>\n<p>In the previous version of my raytracer, I was clamping the total color value to 0-255 interval to be able to output the final image in .png format. Just by deleting these clamping codes, my raytracer were ready to output in .exr format.<\/p>\n<p>I have used the <strong><a href=\"https:\/\/github.com\/syoyo\/tinyexr\" target=\"_blank\" rel=\"noopener\">tinyexr<\/a>\u00a0<\/strong>library to be able to output in .exr format. Then I have used\u00a0<strong>exrdisplay\u00a0<\/strong>tool to visualize that rendered HDR image.<\/p>\n<p>You can visualize my two .exr outputs by following the links below (move the handles of the slider to right step by step, while &#8220;Gamma 2.0&#8221; option is selected):<\/p>\n<ul>\n<li><a href=\"http:\/\/kadircenk.com\/hdr\/exrvisualizer?exrname=1_cube_no_degamma\" target=\"_blank\" rel=\"noopener\">1_cube_no_degamma.exr<\/a>\u00a0 \u00a0(1 cube, no cube degamma)<\/li>\n<li><a href=\"http:\/\/kadircenk.com\/hdr\/exrvisualizer?exrname=3_cubes_no_degamma\" target=\"_blank\" rel=\"noopener\">3_cubes_no_degamma.exr<\/a>\u00a0 \u00a0(3 cubes, no cube degamma)<\/li>\n<li><a href=\"http:\/\/kadircenk.com\/hdr\/exrvisualizer?exrname=1_cube_degamma\" target=\"_blank\" rel=\"noopener\">1_cube_degamma.exr<\/a>\u00a0 \u00a0(1 cube, cube degamma)<\/li>\n<\/ul>\n<h4>Tonemapping<\/h4>\n<p>We have used\u00a0<strong>Photographic\u00a0<\/strong>tonemapping operator to map HDR output to LDR 0-255 .png file. I have implemented the operations explained both in the lecture and in <a href=\"http:\/\/www.cmap.polytechnique.fr\/~peyre\/cours\/x2005signal\/hdr_photographic.pdf\" target=\"_blank\" rel=\"noopener\">the paper<\/a>\u00a0to produce the LDR output.<\/p>\n<p>Below are my tonemapped outputs:<\/p>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"213\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/zzzcube_point_hdr\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"zzzcube_point_hdr\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr.png\" class=\"aligncenter wp-image-213 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/zzzcube_point_hdr-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_point_hdr.xml\n(800x800)\n\/w 8 thrd, no MSAA, Photographic Tonemap,\nNo Cube Material Degamma,\n1 cube.<\/pre>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"214\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_point_hdr-3\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_point_hdr\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2.png\" class=\"aligncenter wp-image-214 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr-2-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_point_hdr.xml\n(800x800)\n\/w 8 thrd, no MSAA, Photographic Tonemap,\nNo Cube Material Degamma,\n3 cubes.<\/pre>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"226\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_point_hdr_degamma_true\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_point_hdr_degamma_true\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true.png\" class=\"aligncenter wp-image-226 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_point_hdr.xml\n(800x800)\n\/w 8 thrd, no MSAA, Photographic Tonemap,\nCube Material Degamma,\n1 cube.<\/pre>\n<p><a href=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"227\" data-permalink=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/cube_point_hdr_degamma_true_2_kup\/\" data-orig-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup.png\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cube_point_hdr_degamma_true_2_kup\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup.png\" class=\"aligncenter wp-image-227 size-full\" src=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup.png 800w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup-150x150.png 150w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup-300x300.png 300w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup-768x768.png 768w, https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_point_hdr_degamma_true_2_kup-100x100.png 100w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre>cube_point_hdr.xml\n(800x800)\n\/w 8 thrd, no MSAA, Photographic Tonemap,\nCube Material Degamma,\n3 cubes.<\/pre>\n<p>Hope to see you in the next post!<\/p>\n<p>Happy tracing!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey trace-masters, High Dynamic Range rendering is here! In my fifth assignment, my task was to implement: HDR (High Dynamic Range) rendering capability, which includes Exporting images as .exr files, and Performing tonemapping\u00a0operation to map HDR images to LDR (Low Dynamic Range), so that their approximate appearances can be shown on non-HDR screens. Two new &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Trace the Ray \u2013 Part 5 (HDR Rendering)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4],"tags":[],"class_list":["post-202","post","type-post","status-publish","format-standard","hentry","category-ray-tracing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk\" \/>\n<meta property=\"og:description\" content=\"Hey trace-masters, High Dynamic Range rendering is here! In my fifth assignment, my task was to implement: HDR (High Dynamic Range) rendering capability, which includes Exporting images as .exr files, and Performing tonemapping\u00a0operation to map HDR images to LDR (Low Dynamic Range), so that their approximate appearances can be shown on non-HDR screens. Two new &hellip; Continue reading &quot;Trace the Ray \u2013 Part 5 (HDR Rendering)&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/\" \/>\n<meta property=\"og:site_name\" content=\"kadircenk\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kadircenk3\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kadircenk3\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-03T22:35:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-02-07T16:38:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png\" \/>\n<meta name=\"author\" content=\"kadircenk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/kadircenkalpay\" \/>\n<meta name=\"twitter:site\" content=\"@kadircenkalpay\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kadircenk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/\"},\"author\":{\"name\":\"kadircenk\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d9546d987c40be9d6ff61c6512b3a25\"},\"headline\":\"Trace the Ray \u2013 Part 5 (HDR Rendering)\",\"datePublished\":\"2018-05-03T22:35:18+00:00\",\"dateModified\":\"2019-02-07T16:38:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/\"},\"wordCount\":436,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d9546d987c40be9d6ff61c6512b3a25\"},\"image\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/cube_directional.png\",\"articleSection\":[\"Ray Tracing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/\",\"url\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/\",\"name\":\"Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/cube_directional.png\",\"datePublished\":\"2018-05-03T22:35:18+00:00\",\"dateModified\":\"2019-02-07T16:38:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#primaryimage\",\"url\":\"http:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/cube_directional.png\",\"contentUrl\":\"http:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/cube_directional.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/trace-the-ray-part-5-hdr-rendering\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trace the Ray \u2013 Part 5 (HDR Rendering)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/\",\"name\":\"kadircenk.com\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d9546d987c40be9d6ff61c6512b3a25\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d9546d987c40be9d6ff61c6512b3a25\",\"name\":\"kadircenk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/ss.png\",\"url\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/ss.png\",\"contentUrl\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/ss.png\",\"width\":696,\"height\":696,\"caption\":\"kadircenk\"},\"logo\":{\"@id\":\"https:\\\/\\\/kadircenk.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/ss.png\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/kadircenk3\",\"https:\\\/\\\/www.instagram.com\\\/kadircenkalpay\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kadir-cenk-alpay\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/kadircenkalpay\",\"https:\\\/\\\/www.youtube.com\\\/kadircenkalpay\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/","og_locale":"en_US","og_type":"article","og_title":"Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk","og_description":"Hey trace-masters, High Dynamic Range rendering is here! In my fifth assignment, my task was to implement: HDR (High Dynamic Range) rendering capability, which includes Exporting images as .exr files, and Performing tonemapping\u00a0operation to map HDR images to LDR (Low Dynamic Range), so that their approximate appearances can be shown on non-HDR screens. Two new &hellip; Continue reading \"Trace the Ray \u2013 Part 5 (HDR Rendering)\"","og_url":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/","og_site_name":"kadircenk","article_publisher":"https:\/\/www.facebook.com\/kadircenk3","article_author":"https:\/\/www.facebook.com\/kadircenk3","article_published_time":"2018-05-03T22:35:18+00:00","article_modified_time":"2019-02-07T16:38:10+00:00","og_image":[{"url":"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png","type":"","width":"","height":""}],"author":"kadircenk","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/kadircenkalpay","twitter_site":"@kadircenkalpay","twitter_misc":{"Written by":"kadircenk","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#article","isPartOf":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/"},"author":{"name":"kadircenk","@id":"https:\/\/kadircenk.com\/blog\/#\/schema\/person\/8d9546d987c40be9d6ff61c6512b3a25"},"headline":"Trace the Ray \u2013 Part 5 (HDR Rendering)","datePublished":"2018-05-03T22:35:18+00:00","dateModified":"2019-02-07T16:38:10+00:00","mainEntityOfPage":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/"},"wordCount":436,"commentCount":0,"publisher":{"@id":"https:\/\/kadircenk.com\/blog\/#\/schema\/person\/8d9546d987c40be9d6ff61c6512b3a25"},"image":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#primaryimage"},"thumbnailUrl":"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png","articleSection":["Ray Tracing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/","url":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/","name":"Trace the Ray \u2013 Part 5 (HDR Rendering) - kadircenk","isPartOf":{"@id":"https:\/\/kadircenk.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#primaryimage"},"image":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#primaryimage"},"thumbnailUrl":"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png","datePublished":"2018-05-03T22:35:18+00:00","dateModified":"2019-02-07T16:38:10+00:00","breadcrumb":{"@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#primaryimage","url":"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png","contentUrl":"http:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2018\/05\/cube_directional.png"},{"@type":"BreadcrumbList","@id":"https:\/\/kadircenk.com\/blog\/trace-the-ray-part-5-hdr-rendering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kadircenk.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Trace the Ray \u2013 Part 5 (HDR Rendering)"}]},{"@type":"WebSite","@id":"https:\/\/kadircenk.com\/blog\/#website","url":"https:\/\/kadircenk.com\/blog\/","name":"kadircenk.com","description":"Blog","publisher":{"@id":"https:\/\/kadircenk.com\/blog\/#\/schema\/person\/8d9546d987c40be9d6ff61c6512b3a25"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kadircenk.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/kadircenk.com\/blog\/#\/schema\/person\/8d9546d987c40be9d6ff61c6512b3a25","name":"kadircenk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2023\/02\/ss.png","url":"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2023\/02\/ss.png","contentUrl":"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2023\/02\/ss.png","width":696,"height":696,"caption":"kadircenk"},"logo":{"@id":"https:\/\/kadircenk.com\/blog\/wp-content\/uploads\/2023\/02\/ss.png"},"sameAs":["https:\/\/www.facebook.com\/kadircenk3","https:\/\/www.instagram.com\/kadircenkalpay","https:\/\/www.linkedin.com\/in\/kadir-cenk-alpay","https:\/\/x.com\/https:\/\/twitter.com\/kadircenkalpay","https:\/\/www.youtube.com\/kadircenkalpay"]}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9NbhO-3g","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/comments?post=202"}],"version-history":[{"count":11,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/posts\/202\/revisions"}],"predecessor-version":[{"id":452,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/posts\/202\/revisions\/452"}],"wp:attachment":[{"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/media?parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/categories?post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kadircenk.com\/blog\/wp-json\/wp\/v2\/tags?post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}