GLSLでは定数でPIを定義しているコードがよくみられる。UnityではUnityCG.cgincのUNITY_PIを利用することができる。
最近、1ツイート(280文字)内にシェーダーをおさめる つぶやきGLSL というものが流行っています。 一見「もうこれ以上詰められないよ~」となってしまっても、よくよく探すと意外なところを削れることがあったります。 この記事では、自分が使っている、つぶやきGLSLで文字を詰めるためのテクニックをチートシートとしてまとめてみました。 つぶやきGLSLの作例 #つぶやきGLSL void main(){vec3 p;for(int i=0;i<32;++i)p+=vec3((gl_FragCoord.xy*2.-r)/r.y,1)*(length(cos(p))-length(sin(t/.1+p/.2))*.6*s)*.5;gl_FragColor=vec4(5./p.z*s);} vec2 mainSound(float t){int i=int(t*=1e3);return vec2((
ノイズといえば、砂嵐のようなランダムノイズから連続性を保ったパーリンノイズまで様々なノイズが考えられています。残念なことにUnityのシェーダにはノイズを生成するメソッドが用意されていないため、プログラムを作る必要があります。 この記事では、Unityでランダムノイズ、ブロックノイズ、バリューノイズ、パーリンノイズ、fBmを作る方法を見ていきましょう。 ランダムノイズ ブロックノイズ バリューノイズ パーリンノイズ fBmノイズ まとめ&参考書 ランダムノイズ ランダムノイズとは場所や時間に依存せずに全くのランダムに値を決めるノイズのことです。テレビの砂嵐(古い!)と同じものですね。 www.youtube.com まずはノイズ生成の基本になるランダムノイズを表示するシェーダを作ってみましょう!シーン中にノイズを表示するための平面モデルをUnityのシーンビューに配置して、そこにシェーダプ
とりあえずこの映像を見てください。 昨日の勉強会の懇親会中に20分間のライブコーディングでシェーダーを作りました! 初めて人前でコーディングをしたんですが、めちゃくちゃ楽しかったです!! (当日動かなかったpmod修正済です...) 差分 - q.x = abs(p.x ) - 10.; + q.x = abs(q.x ) - 10.;https://t.co/LH3TT4YzSU#klab_meetup pic.twitter.com/k61c3O2ZA1 — かねた (@kanetaaaaa) 2019年6月19日 20分間のライブコーディング映像フル 先日の #klab_meetup の懇親会で行った20分のライブコーディング映像を公開しました! 実況解説は@gam0022 さんと@songofsaya_さんです 突発ながら面白い実況で場を盛り上げてくださって非常に楽しかったです!
You've probably run into terrain where the steep sides of a cliff have their texture stretched so much that it looks unrealistic. Maybe you have a procedurally generated world that you have no way to UV unwrap and texture. Tri-planar mapping provides an elegant technique to solve these issues and give you realistic textures from any angle or on any complex shape. Here you will learn about the tech
セルラーノイズ オリジナルのパーリンノイズから16年後、シンプレックスノイズの5年前に当たる1996年、Steven Worley は「A Cellular Texture Basis Function」 という論文を発表しました。この論文の中で彼は、今日のグラフィックコミュニティで幅広く使われているテクスチャリングの手法について説明しています。 背景となる原理を理解するには「繰り返し」について考える必要があります。何のことかお分かりですね。そう、 for ループです。GLSLの for ループには1つだけ難点があって、繰り返し条件として使う数値が定数(const)である必要があります。そのためループ回数は固定でなくてはならず、動的に変えることはできません。 まずは例を見てみましょう。 ディスタンスフィールド上の点 セルラーノイズではディスタンスフィールドに基づいて、複数の点の中から最も近
はじめに 2018/12/01〜12/02 に開催された Tokyo Demo Fest 2018 というデモパーティに初参加してきました。Tokyo Demo Fest をご存知ではない方のために、説明を公式サイトから引用します。 Tokyo Demo Fest は日本で唯一のデモパーティです。 デモパーティは、コンピュータを用いたプログラミングとアートに 興味のある人々が日本中、世界中から一堂に会し、 デモ作品のコンペティション(コンポ)やセミナーなどを行います。 また、イベント開催中は集まった様々な人たちとの交流が深められます。 私は GLSL Graphics Compo という GLSL のフラグメントシェーダのみで映像を作って競う部門に作品をエントリーし、2位に選んでいただきました。ありがとうございます! 作品は下記からご覧になれます。 Pouet GitHub Shadert
Table of Contents Fighting aliasing Enters FXAA Prerequisites Luma Texture filtering Step-by-step Detecting where to apply AA Estimating gradient and choosing edge direction Choosing edge orientation First iteration exploration Iterating Estimating offset Subpixel antialiasing Final read Sources When rendering 3D scenes on a computer screen, aliasing can occur. As each pixel can only belong to the
Intro Warping, or dommain distortion is a very common technique in computer graphics for generating procedural textures and geometry. It's often used to pinch an object, strech it, twist it, bend it, make it thicker or apply any deformation you want. It works as long as your base color pattern or geometry is defined as a function of space. In this article I'm only going to show a very particular c
Intro Arround 2002 I made my first attempts to visualize fractal mountains and test procedural texturing. At that time I was not able to raytrace polygons and my rasterization engine was really bad. So I chose to do a "raymarcher" to create some pictures cause it's a really simple technique. What I implemented was a quite brute force thing and was very slow. But it was very simple to code, somethi
Hi. In this article I will tell you about a rendering technique known as raymarching with distance fields, capable of producing highly detailed images in real-time with very simple code. slisesix by Inigo Quilez Before reading on, perhaps you would like to try the interactive WebGL demo? Content Introduction The raymarching algorithm Rendering techniques Iteration based coloring Bounding volume Fo
レイマーチングで大域照明を実現するための理論と実践を紹介します。 メガデモ勉強会! 2018で発表しました。 https://atnd.org/events/93843
🏠 Distance Fields Streamlines par_streamlines 3D Wireframes in SVG Split-free occlusion sorting Perfect Panning Octaspheres Graceful Graphs Tait Coloring Cross Products and the 4CT Generating SVG for the Prime Knots Rolling Cubes and Group Theory Exploring Special Relativity C++ as a scripting language Serialization-Based Undo Archived
🏠 Distance Fields Streamlines par_streamlines 3D Wireframes in SVG Split-free occlusion sorting Perfect Panning Octaspheres Graceful Graphs Tait Coloring Cross Products and the 4CT Generating SVG for the Prime Knots Rolling Cubes and Group Theory Exploring Special Relativity C++ as a scripting language Serialization-Based Undo Archived
こんにちは。traP Advent Calendar 2016 22日目担当のArkです。 今回はクリエイティブコーディングについて書きます。 1. クリエイティブコーディングとは みなさん、クリエイティブコーディングを知っていますか? 僕は知りません。 ・・・。 ちょうどいい言葉ないかなーとググってみたらこのワードが出てきたのでタイトルに使ってみました。 wikipediaによれば、 Creative coding is a type of computer programming in which the goal is to create something expressive instead of something functional. とのこと。 要は「プログラミングによってクリエイティブな作品を創ろう」というものだと思います(たぶん)。 今年は クリエイティブコーディング
Intro One of the basic building blocks of Signed Distance Field (SDF) modeling based on basic primitives (as opposed to Grids or Neural Networks) is the Smooth-Minimum operator or Smooth-Union. This is similar to a regular Minimum/Union operator, but, well "smooth". This means that where the regular or non-smooth Minimum/Union takes two input SDFs a and b and returns the closest one of the two, ef
WebGLで、VRに関連する高速化技術を実装してみたという話です。 はじめに VRを行う場合、両目の映像をレンダリングする必要があります。このため、単純な実装ですと左右それぞれに対しドローコールを発行する必要がある為、非VRの場合の少なくとも2倍のドローコールが必要となります。WebGLの場合はオーバヘッドがもっと大きくなる為、事態は一層深刻になります。 1回のドローコールで両目の映像を一度に描画する手法として、以下のものが提案されています1: ジオメトリシェーダを利用する。 この方法はピクセルシェーダの書き換えが不要、CPU側コードの修正量が少ない等の点で優れています。しかし、頂点シェーダの微小な修正が必要、GPUによっては著しいオーバヘッドを生じる (660 GTXで3x以上のジオメトリスループット低下) などの欠点があります。 一番の問題は、ジオメトリシェーダをサポートしていないAP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く