{"blog_title":"\u30c6\u30e9Byte\u306e\u6642\u4ee3\u306b\u30ad\u30edByte","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgaz.hateblo.jp%2Fentry%2F2019%2F05%2F12%2F164845\" title=\"--shader(GLSL)\u306e\u5c0f\u6280 09-- \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u3042\u308b\u70b9\u306b\u5411\u304b\u3059 - \u30c6\u30e9Byte\u306e\u6642\u4ee3\u306b\u30ad\u30edByte\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2019-05-12 16:48:45","author_name":"gaziya","title":"--shader(GLSL)\u306e\u5c0f\u6280 09-- \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u3042\u308b\u70b9\u306b\u5411\u304b\u3059","url":"https://gaz.hateblo.jp/entry/2019/05/12/164845","height":"190","image_url":null,"categories":[],"version":"1.0","provider_name":"Hatena Blog","author_url":"https://blog.hatena.ne.jp/gaziya/","description":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u3042\u308b\u70b9\u306b\u5411\u304b\u3059\u306b\u306f\u3001mat3()\u3092\u4f7f\u3044\u307e\u3059\u3002lookat\u884c\u5217\u3068\u540c\u3058\u4f5c\u308a\u65b9\u3092\u3057\u307e\u3059\u3002 \u9055\u3046\u306e\u306f\u3001\u304b\u3051\u308b\u9806\u756a\u3002 \u672c\u5f53\u306f\u9006\u884c\u5217\u3092\u4f7f\u3046\u306e\u3067\u3057\u3087\u3046\u3051\u3069\u3001GLSL\u306e\u5834\u5408\u306f\u3001\u304b\u3051\u308b\u9806\u756a\u3092\u5f8c\u306b\u3059\u308b\u3068\u9006\u884c\u5217\u6271\u3044\u306b\u306a\u308b\u3088\u3046\u3067\u3059\u3002 // point at vec3 w=normalize(ta-q); vec3 u=normalize(cross(w,vec3(0,1,0))); mat3 m=mat3(u,cross(u,w),w); q = (p-q)*m; pointAt\u884c\u5217\u90e8\u5206\u306e\u629c\u7c8b\u3002 \u4eca\u56de\u306eshader (shadertoy rule) mat2 rotate(float a) { retu\u2026","blog_url":"https://gaz.hateblo.jp/","type":"rich","provider_url":"https://hatena.blog","width":"100%"}