mirror of https://github.com/sotrh/learn-wgpu
Deploying to gh-pages from @ sotrh/learn-wgpu@67f81c8d82 🚀
parent
5cb5d83c2a
commit
bcfea0c264
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{317:function(t,e,o){},391:function(t,e,o){var r={"./pong/demo.js":[393,8],"./tutorial10_lighting/demo.js":[395,9],"./tutorial11_normals/demo.js":[397,10],"./tutorial12_camera/demo.js":[399,11],"./tutorial13_hdr/demo.js":[401,12],"./tutorial1_window/demo.js":[403,13],"./tutorial2_surface/demo.js":[405,14],"./tutorial3_pipeline/demo.js":[407,15],"./tutorial4_buffer/demo.js":[409,16],"./tutorial5_textures/demo.js":[411,17],"./tutorial6_uniforms/demo.js":[413,18],"./tutorial7_instancing/demo.js":[415,19],"./tutorial8_depth/demo.js":[417,20],"./tutorial9_models/demo.js":[419,21]};function a(t){if(!o.o(r,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=r[t],a=e[0];return o.e(e[1]).then((function(){return o(a)}))}a.keys=function(){return Object.keys(r)},a.id=391,t.exports=a},392:function(t,e,o){"use strict";o(317)},428:function(t,e,o){"use strict";o.r(e);var r={name:"WasmExample",props:{example:"",autoLoad:!1},data:()=>({error:"",loading:!1,exampleStarted:!1}),computed:{exampleName(){return this.example.replace(/\w\S*/g,(function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}))}},methods:{async loadExample(){this.loading=!0;try{await o(391)(`./${this.example}/demo.js`)}catch(t){""+t!="Error: Using exceptions for control flow, don't mind me. This isn't actually an error!"?(this.error=`An error occurred loading "${this.example}": ${t}`,console.error(t),this.exampleStarted=!1):this.exampleStarted=!0}this.loading=!1}},async mounted(){await this.$nextTick(),this.autoLoad&&await this.loadExample()}},a=(o(392),o(7)),n=Object(a.a)(r,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"wasm-example"}},[t.error?e("div",{staticClass:"error"},[t._v("\n "+t._s(t.error)+"\n ")]):t._e(),t._v(" "),t.exampleStarted||t.autoLoad?t._e():e("button",{attrs:{disabled:t.loading},on:{click:function(e){return t.loadExample()}}},[t._v("Try "+t._s(t.exampleName)+"!")])])}),[],!1,null,null,null);e.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{317:function(t,e,o){},391:function(t,e,o){var r={"./pong/demo.js":[393,8],"./tutorial10_lighting/demo.js":[395,9],"./tutorial11_normals/demo.js":[397,10],"./tutorial12_camera/demo.js":[399,11],"./tutorial13_hdr/demo.js":[401,12],"./tutorial1_window/demo.js":[403,13],"./tutorial2_surface/demo.js":[405,14],"./tutorial3_pipeline/demo.js":[407,15],"./tutorial4_buffer/demo.js":[409,16],"./tutorial5_textures/demo.js":[411,17],"./tutorial6_uniforms/demo.js":[413,18],"./tutorial7_instancing/demo.js":[415,19],"./tutorial8_depth/demo.js":[417,20],"./tutorial9_models/demo.js":[419,21]};function a(t){if(!o.o(r,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=r[t],a=e[0];return o.e(e[1]).then((function(){return o(a)}))}a.keys=function(){return Object.keys(r)},a.id=391,t.exports=a},392:function(t,e,o){"use strict";o(317)},429:function(t,e,o){"use strict";o.r(e);var r={name:"WasmExample",props:{example:"",autoLoad:!1},data:()=>({error:"",loading:!1,exampleStarted:!1}),computed:{exampleName(){return this.example.replace(/\w\S*/g,(function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}))}},methods:{async loadExample(){this.loading=!0;try{await o(391)(`./${this.example}/demo.js`)}catch(t){""+t!="Error: Using exceptions for control flow, don't mind me. This isn't actually an error!"?(this.error=`An error occurred loading "${this.example}": ${t}`,console.error(t),this.exampleStarted=!1):this.exampleStarted=!0}this.loading=!1}},async mounted(){await this.$nextTick(),this.autoLoad&&await this.loadExample()}},a=(o(392),o(7)),n=Object(a.a)(r,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"wasm-example"}},[t.error?e("div",{staticClass:"error"},[t._v("\n "+t._s(t.error)+"\n ")]):t._e(),t._v(" "),t.exampleStarted||t.autoLoad?t._e():e("button",{attrs:{disabled:t.loading},on:{click:function(e){return t.loadExample()}}},[t._v("Try "+t._s(t.exampleName)+"!")])])}),[],!1,null,null,null);e.default=n.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{429:function(e,t,n){"use strict";n.r(t);var r={name:"RecentArticles",data:()=>({}),computed:{recentFiles(){return this.$site.pages.filter(e=>e.regularPath.includes("beginner")||e.regularPath.includes("intermediate")).sort((e,t)=>{let n=new Date(e.frontmatter.published).getTime()-new Date(t.frontmatter.published).getTime();return n<0?-1:n>0?1:0}).slice(0,5)}}},i=n(7),l=Object(i.a)(r,(function(){var e=this,t=e._self._c;return t("div",[t("ul",e._l(e.recentFiles,(function(n,r){return t("li",{key:n},[t("a",{attrs:{href:r.path}},[e._v(e._s(r.title))])])})),0)])}),[],!1,null,null,null);t.default=l.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{428:function(e,t,n){"use strict";n.r(t);var r={name:"RecentArticles",data:()=>({}),computed:{recentFiles(){return this.$site.pages.filter(e=>e.regularPath.includes("beginner")||e.regularPath.includes("intermediate")).sort((e,t)=>{let n=new Date(e.frontmatter.published).getTime()-new Date(t.frontmatter.published).getTime();return n<0?-1:n>0?1:0}).slice(0,5)}}},i=n(7),l=Object(i.a)(r,(function(){var e=this,t=e._self._c;return t("div",[t("ul",e._l(e.recentFiles,(function(n,r){return t("li",{key:n},[t("a",{attrs:{href:r.path}},[e._v(e._s(r.title))])])})),0)])}),[],!1,null,null,null);t.default=l.exports}}]);
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{441:function(s,t,i){"use strict";i.r(t);var e=i(7),n=Object(e.a)({},(function(){var s=this._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"sources"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sources"}},[this._v("#")]),this._v(" Sources")]),this._v(" "),s("ul",[s("li",[this._v("https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/diffuse-lambertian-shading")]),this._v(" "),s("li",[this._v("http://jimmiejohnsson84.me/pages/rendering_pbr.html")])])])}),[],!1,null,null,null);t.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{442:function(s,t,i){"use strict";i.r(t);var e=i(7),n=Object(e.a)({},(function(){var s=this._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"sources"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sources"}},[this._v("#")]),this._v(" Sources")]),this._v(" "),s("ul",[s("li",[this._v("https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/diffuse-lambertian-shading")]),this._v(" "),s("li",[this._v("http://jimmiejohnsson84.me/pages/rendering_pbr.html")])])])}),[],!1,null,null,null);t.default=n.exports}}]);
|
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{452:function(t,s,e){"use strict";e.r(s);var a=e(7),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"update-to-0-17"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#update-to-0-17"}},[this._v("#")]),this._v(" Update to 0.17")]),this._v(" "),t("p",[this._v("No changes needed to the tutorial!")])])}),[],!1,null,null,null);s.default=o.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{453:function(t,s,e){"use strict";e.r(s);var a=e(7),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"update-to-0-17"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#update-to-0-17"}},[this._v("#")]),this._v(" Update to 0.17")]),this._v(" "),t("p",[this._v("No changes needed to the tutorial!")])])}),[],!1,null,null,null);s.default=o.exports}}]);
|
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{453:function(t,e,o){"use strict";o.r(e);var a=o(7),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"update-to-0-18-and-hdr-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#update-to-0-18-and-hdr-tutorial"}},[t._v("#")]),t._v(" Update to 0.18 and HDR tutorial")]),t._v(" "),e("p",[t._v("First let's go over some of the changes that occurred:")]),t._v(" "),e("ol",[e("li",[e("code",[t._v("RenderPassDescriptor")]),t._v(" now have 2 new fields:\n"),e("code",[t._v("occlusion_query_set")]),t._v(" and, "),e("code",[t._v("timestamp_writes")]),t._v(". I'm\nsetting both to "),e("code",[t._v("None")]),t._v(" for now.")]),t._v(" "),e("li",[e("code",[t._v("ComputePassDescriptor")]),t._v(" now has a "),e("code",[t._v("timestamp_writes")]),t._v("\nfield.")]),t._v(" "),e("li",[e("code",[t._v("InstanceDescriptor")]),t._v(" now has some more fields, but I\nopted to just use "),e("code",[t._v("..Default::default()")]),t._v(" for all the\nfields other than "),e("code",[t._v("backends")]),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"hdr-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hdr-tutorial"}},[t._v("#")]),t._v(" HDR tutorial")]),t._v(" "),e("p",[t._v("I've been unsure how best to introduce compute shaders\nas they are a big part of what makes WebGPU special, but\nmost browsers don't support them at the moment. With Chrome\nrolling out support for WebGPU, I felt more confident\nwriting a tutorial for them.")]),t._v(" "),e("p",[t._v("Also, I'm been interested learning how to load HDR images\nfrom places like Polyhaven, so I decided to introduce\ncompute shaders by creating one that will load an HDR and\nconvert it to a Cubemap to be rendered.")]),t._v(" "),e("p",[t._v("You can check it out "),e("a",{attrs:{href:"../../intermediate/tutorial13-hdr"}},[t._v("here")]),t._v("!")])])}),[],!1,null,null,null);e.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{452:function(t,e,o){"use strict";o.r(e);var a=o(7),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"update-to-0-18-and-hdr-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#update-to-0-18-and-hdr-tutorial"}},[t._v("#")]),t._v(" Update to 0.18 and HDR tutorial")]),t._v(" "),e("p",[t._v("First let's go over some of the changes that occurred:")]),t._v(" "),e("ol",[e("li",[e("code",[t._v("RenderPassDescriptor")]),t._v(" now have 2 new fields:\n"),e("code",[t._v("occlusion_query_set")]),t._v(" and, "),e("code",[t._v("timestamp_writes")]),t._v(". I'm\nsetting both to "),e("code",[t._v("None")]),t._v(" for now.")]),t._v(" "),e("li",[e("code",[t._v("ComputePassDescriptor")]),t._v(" now has a "),e("code",[t._v("timestamp_writes")]),t._v("\nfield.")]),t._v(" "),e("li",[e("code",[t._v("InstanceDescriptor")]),t._v(" now has some more fields, but I\nopted to just use "),e("code",[t._v("..Default::default()")]),t._v(" for all the\nfields other than "),e("code",[t._v("backends")]),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"hdr-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hdr-tutorial"}},[t._v("#")]),t._v(" HDR tutorial")]),t._v(" "),e("p",[t._v("I've been unsure how best to introduce compute shaders\nas they are a big part of what makes WebGPU special, but\nmost browsers don't support them at the moment. With Chrome\nrolling out support for WebGPU, I felt more confident\nwriting a tutorial for them.")]),t._v(" "),e("p",[t._v("Also, I'm been interested learning how to load HDR images\nfrom places like Polyhaven, so I decided to introduce\ncompute shaders by creating one that will load an HDR and\nconvert it to a Cubemap to be rendered.")]),t._v(" "),e("p",[t._v("You can check it out "),e("a",{attrs:{href:"../../intermediate/tutorial13-hdr"}},[t._v("here")]),t._v("!")])])}),[],!1,null,null,null);e.default=r.exports}}]);
|
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{455:function(e,t,o){"use strict";o.r(t);var s=o(7),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"foreword"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#foreword"}},[e._v("#")]),e._v(" Foreword")]),e._v(" "),t("p",[e._v("The articles in this section are not meant to be tutorials. They are showcases of the various things you can do with "),t("code",[e._v("wgpu")]),e._v(". I won't go over the specifics of creating "),t("code",[e._v("wgpu")]),e._v(" resources, as those will be covered elsewhere. The code for these examples is still available however and will be accessible on Github.")])])}),[],!1,null,null,null);t.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{454:function(e,t,o){"use strict";o.r(t);var s=o(7),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"foreword"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#foreword"}},[e._v("#")]),e._v(" Foreword")]),e._v(" "),t("p",[e._v("The articles in this section are not meant to be tutorials. They are showcases of the various things you can do with "),t("code",[e._v("wgpu")]),e._v(". I won't go over the specifics of creating "),t("code",[e._v("wgpu")]),e._v(" resources, as those will be covered elsewhere. The code for these examples is still available however and will be accessible on Github.")])])}),[],!1,null,null,null);t.default=r.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{462:function(t,s,n){"use strict";n.r(s);var o=n(7),e=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"coming-soon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coming-soon"}},[this._v("#")]),this._v(" Coming Soon!")]),this._v(" "),t("p",[this._v("This section has not yet been completed.")])])}),[],!1,null,null,null);s.default=e.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{463:function(t,s,n){"use strict";n.r(s);var o=n(7),e=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"coming-soon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#coming-soon"}},[this._v("#")]),this._v(" Coming Soon!")]),this._v(" "),t("p",[this._v("This section has not yet been completed.")])])}),[],!1,null,null,null);s.default=e.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue