8000 Deploy to GitHub pages · profan/rust-gamedev.github.io@ebc7214 · GitHub
[go: up one dir, main page]

Skip to content

Commit ebc7214

Browse files
committed
Deploy to GitHub pages
1 parent 74e725b commit ebc7214

File tree

2 files changed

+102
-102
lines changed

2 files changed

+102
-102
lines changed

posts/newsletter-015/index.html

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,57 @@ <h3 id="building-blocks"><a href="https://github.com/bonsairobo/building-blocks"
723723
when doing large edits and working with large maps:</p>
724724
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/voxel-mapper.gif" alt="Terraforming demo" /></p>
725725
<p>Join <a href="https://discord.gg/CnTNjwb">Building Blocks's Discord server</a>.</p>
726+
<h3 id="rust-gpu-v0-1"><a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU v0.1</a>&nbsp;<a class="anchor" href="#rust-gpu-v0-1" aria-hidden="true">#</a>
727+
</h3>
728+
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/rustgpu.jpg" alt="Rust GPU Sky" />
729+
<em>Sky example in Rust GPU</em></p>
730+
<p><a href="https://github.com/EmbarkStudios/rust-gpu">Rust GPU</a> is a project backed by <a href="https://www.embark-studios.com/">Embark Studios</a>
731+
to make Rust a first-class language and ecosystem for building GPU code.</p>
732+
<p>Although still in very early stages of development,
733+
<a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU released v0.1 in October</a>,
734+
and has already garnered over 2000 stars on Github.
735+
Currently, compiling and running very simple shaders
736+
works, and a significant portion of the core library also compiles. While things
737+
like if-statements and while-loops are working, many things aren't implemented yet.
738+
For example, for-loops, iterators and match/switch aren't supported yet. That
739+
means that while being technically usable, Rust GPU is far from being
740+
production-ready.</p>
741+
<p>The motivation behind the project:</p>
742+
<blockquote>
743+
<p>Historically in games, GPU programming has been done through writing either
744+
HLSL, or to a lesser extent GLSL. These are simple programming languages that
745+
have evolved along with rendering APIs over the years. However, as game engines
746+
have evolved, these languages have failed to provide mechanisms for dealing with
747+
large codebases, and have generally stayed behind the curve compared to other
748+
programming languages.</p>
749+
<p>In part this is because it's a niche language for a niche market, and in part
750+
this has been because the industry as a whole has sunk quite a lot of time and
751+
effort into the status quo. While over-all better alternatives to both languages
752+
exist, none of them are in a place to replace HLSL or GLSL. Either because they
753+
are vendor locked, or because they don't support the traditional graphics
754+
pipeline. Examples of this include CUDA and OpenCL. And while attempts have been
755+
made to create language in this space, none of them have gained any notable
756+
traction in the gamedev community.</p>
757+
</blockquote>
758+
<p>The code for the sky example above:</p>
759+
<pre style="background-color:#2b303b;">
760+
<code><span style="color:#c0c5ce;">#[</span><span style="color:#bf616a;">spirv</span><span style="color:#c0c5ce;">(entry = &quot;</span><span style="color:#a3be8c;">fragment</span><span style="color:#c0c5ce;">&quot;)]
761+
</span><span style="color:#b48ead;">pub fn </span><span style="color:#8fa1b3;">main_fs</span><span style="color:#c0c5ce;">(</span><span style="color:#bf616a;">input</span><span style="color:#c0c5ce;">: Input&lt;Vec4&gt;, </span><span style="color:#b48ead;">mut </span><span style="color:#bf616a;">output</span><span style="color:#c0c5ce;">: Output&lt;Vec4&gt;) {
< ED4F /code>
762+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir: Vec3 = input.</span><span style="color:#96b5b4;">load</span><span style="color:#c0c5ce;">().</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">();
763+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> cs_pos = Vec4(dir.</span><span style="color:#d08770;">0</span><span style="color:#c0c5ce;">, -dir.</span><span style="color:#d08770;">1</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">);
764+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> ws_pos = {
765+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> p = clip_to_world.</span><span style="color:#96b5b4;">mul_vec4</span><span style="color:#c0c5ce;">(cs_pos);
766+
p.</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">() / p.</span><span style="color:#d08770;">3
767+
</span><span style="color:#c0c5ce;">};
768+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir = (ws_pos - eye_pos).</span><span style="color:#96b5b4;">normalize</span><span style="color:#c0c5ce;">();
769+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> color = </span><span style="color:#96b5b4;">sky</span><span style="color:#c0c5ce;">(dir, sun_pos); </span><span style="color:#65737e;">// evaluate Preetham sky model
770+
</span><span style="color:#c0c5ce;"> output.</span><span style="color:#96b5b4;">store</span><span style="color:#c0c5ce;">(color.</span><span style="color:#96b5b4;">extend</span><span style="color:#c0c5ce;">(</span><span style="color:#d08770;">0.0</span><span style="color:#c0c5ce;">))
771+
}
772+
</span></code></pre>
773+
<p><em>Discussions:
774+
<a href="https://reddit.com/r/rust/comments/jg056t/introducing_rustgpu_v01">/r/rust</a>,
775+
<a href="https://news.ycombinator.com/item?id=24858172">Hacker News</a>,
776+
<a href="https://twitter.com/repi/status/1319274584915365888">Twitter</a></em></p>
726777
<h3 id="gfx-rs"><a href="https://github.com/gfx-rs/gfx">gfx-rs</a>&nbsp;<a class="anchor" href="#gfx-rs" aria-hidden="true">#</a>
727778
</h3>
728779
<p>gfx-rs support for D3D has been improved. <a href="https://github.com/kvark">@kvark</a> landed a few critical fixes
@@ -958,57 +1009,6 @@ <h3 id="proton-5-13-1"><a href="https://github.com/ValveSoftware/Proton">Proton<
9581009
<p>Documentation for building Proton is available on <a href="https://github.com/ValveSoftware/Proton">Github</a>.
9591010
Further documentation on Media Converter and its source code is available
9601011
on the module's <a href="https://github.com/ValveSoftware/Proton/tree/proton_5.13/media-converter">repository</a></p>
961-
<h3 id="rust-gpu-v0-1"><a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU v0.1</a>&nbsp;<a class="anchor" href="#rust-gpu-v0-1" aria-hidden="true">#</a>
962-
</h3>
963-
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/rustgpu.jpg" alt="Rust GPU Sky" />
964-
<em>Sky example in Rust GPU</em></p>
965-
<p><a href="https://github.com/EmbarkStudios/rust-gpu">Rust GPU</a> is a project backed by <a href="https://www.embark-studios.com/">Embark Studios</a>
966-
to make Rust a first-class language and ecosystem for building GPU code.</p>
967-
<p>Although still in very early stages of development,
968-
<a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU released v0.1 in October</a>,
969-
and has already garnered over 2000 stars on Github.
970-
Currently, compiling and running very simple shaders
971-
works, and a significant portion of the core library also compiles. While things
972-
like if-statements and while-loops are working, many things aren't implemented yet.
973-
For example, for-loops, iterators and match/switch aren't supported yet. That
974-
means that while being technically usable, Rust GPU is far from being
975-
production-ready.</p>
976-
<p>The motivation behind the project:</p>
977-
<blockquote>
978-
<p>Historically in games, GPU programming has been done through writing either
979-
HLSL, or to a lesser extent GLSL. These are simple programming languages that
980-
have evolved along with rendering APIs over the years. However, as game engines
981-
have evolved, these languages have failed to provide mechanisms for dealing with
982-
large codebases, and have generally stayed behind the curve compared to other
983-
programming languages.</p>
984-
<p>In part this is because it's a niche language for a niche market, and in part
985-
this has been because the industry as a whole has sunk quite a lot of time and
986-
effort into the status quo. While over-all better alternatives to both languages
987-
exist, none of them are in a place to replace HLSL or GLSL. Either because they
988-
are vendor locked, or because they don't support the traditional graphics
989-
pipeline. Examples of this include CUDA and OpenCL. And while attempts have been
990-
made to create language in this space, none of them have gained any notable
991-
traction in the gamedev community.</p>
992-
</blockquote>
993-
<p>The code for the sky example above:</p>
994-
<pre style="background-color:#2b303b;">
995-
<code><span style="color:#c0c5ce;">#[</span><span style="color:#bf616a;">spirv</span><span style="color:#c0c5ce;">(entry = &quot;</span><span style="color:#a3be8c;">fragment</span><span style="color:#c0c5ce;">&quot;)]
996-
</span><span style="color:#b48ead;">pub fn </span><span style="color:#8fa1b3;">main_fs</span><span style="color:#c0c5ce;">(</span><span style="color:#bf616a;">input</span><span style="color:#c0c5ce;">: Input&lt;Vec4&gt;, </span><span style="color:#b48ead;">mut </span><span style="color:#bf616a;">output</span><span style="color:#c0c5ce;">: Output&lt;Vec4&gt;) {
997-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir: Vec3 = input.</span><span style="color:#96b5b4;">load</span><span style="color:#c0c5ce;">().</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">();
998-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> cs_pos = Vec4(dir.</span><span style="color:#d08770;">0</span><span style="color:#c0c5ce;">, -dir.</span><span style="color:#d08770;">1</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">);
999-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> ws_pos = {
1000-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> p = clip_to_world.</span><span style="color:#96b5b4;">mul_vec4</span><span style="color:#c0c5ce;">(cs_pos);
1001-
p.</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">() / p.</span><span style="color:#d08770;">3
1002-
</span><span style="color:#c0c5ce;">};
1003-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir = (ws_pos - eye_pos).</span><span style="color:#96b5b4;">normalize</span><span style="color:#c0c5ce;">();
1004-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> color = </span><span style="color:#96b5b4;">sky</span><span style="color:#c0c5ce;">(dir, sun_pos); </span><span style="color:#65737e;">// evaluate Preetham sky model
1005-
</span><span style="color:#c0c5ce;"> output.</span><span style="color:#96b5b4;">store</span><span style="color:#c0c5ce;">(color.</span><span style="color:#96b5b4;">extend</span><span style="color:#c0c5ce;">(</span><span style="color:#d08770;">0.0</span><span style="color:#c0c5ce;">))
1006-
}
1007-
</span></code></pre>
1008-
<p><em>Discussions:
1009-
<a href="https://reddit.com/r/rust/comments/jg056t/introducing_rustgpu_v01">/r/rust</a>,
1010-
<a href="https://news.ycombinator.com/item?id=24858172">Hacker News</a>,
1011-
<a href="https://twitter.com/repi/status/1319274584915365888">Twitter</a></em></p>
10121012
<h2 id="popular-workgroup-issues-in-github">Popular Workgroup Issues in Github&nbsp;<a class="anchor" href="#popular-workgroup-issues-in-github" aria-hidden="true">#</a>
10131013
</h2>
10141014
<!-- Up to 10 links to interesting issues -->

0 commit comments

Comments
 (0)
0