{"image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/a/aa_debdeb/20170502/20170502000708.png","blog_url":"https://30min-processing.hatenablog.com/","published":"2017-05-10 00:00:00","version":"1.0","url":"https://30min-processing.hatenablog.com/entry/2017/05/10/000000","provider_name":"Hatena Blog","title":"\u30ec\u30a4\u30de\u30fc\u30c1\u30f3\u30b0\u3067Phong\u306e\u53cd\u5c04\u30e2\u30c7\u30eb","width":"100%","height":"190","author_url":"https://blog.hatena.ne.jp/aa_debdeb/","author_name":"aa_debdeb","provider_url":"https://hatena.blog","description":"See the Pen raymarching with Phong reflection model by aadebdeb (@aadebdeb) on CodePen. #define PI 3.14159265359 #define TWO_PI PI * 2.0 #define HALF_PI PI / 2.0 precision mediump float; uniform float u_time; uniform vec2 u_mouse; uniform vec2 u_resolution; struct Camera { vec3 position; vec3 ray; }\u2026","type":"rich","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2F30min-processing.hatenablog.com%2Fentry%2F2017%2F05%2F10%2F000000\" title=\"\u30ec\u30a4\u30de\u30fc\u30c1\u30f3\u30b0\u3067Phong\u306e\u53cd\u5c04\u30e2\u30c7\u30eb - Daily Creative Coding\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"Daily Creative Coding","categories":["GLSL","\u30ec\u30a4\u30de\u30fc\u30c1\u30f3\u30b0","3D"]}