Coder Social home page Coder Social logo

shader-code's People

Watchers

 avatar

shader-code's Issues

typo

UV_PATTERNS/Line_Pattern.hlsl内のVerticalPattern関数にミスがありました。

45行目
本来pixelと書くべきところが、pixel.xとなっていた。

UV座標から線を描く関数の改善案②ー線を描くアルゴリズムの拡張

線を引く関数の拡張

市松模様を描くプログラムを改造し、縦 横 斜め45°の直線を引く関数の、
線を引くためのアルゴリズムとは違う実装を用意するべき。

理由

  • 回転させにくいため
  • 線の軸から遠ざかっていくにつれてグラデーションするような表現ができない
  • ドット絵的な枠組みから抜け出すため

提案

  • 角度を指定して回転させることができる
  • 線の太さを自由に変えられる
  • 線の密集度合を自由に変えられる
  • 線をパキっとさせたぼやっとさせたり
    • 線のボケ具合の閾値を変えたり
  • アンチエイリアスの On / Off
  • 極座標を用いて、線を湾曲させられる
  • あとは先人の表現をググってください。

mlerpのアルゴリズムの改造案

mlerp関数の機能の一部を別の関数に切り分けたほうが都合がよさそう

  1. 入力値の値域を元に現在値の重みを求め、
  2. その重みを元にlerpをかけることで、ある範囲内に収まる値を別の範囲にマッピングする機能のうち、

1つめの 重みを求める部分 を別の関数として切り分けておくと、別のところでも役立ちそう。

float weight(min, max, x) {
    return (x - min) / (max - min);
}

UV座標から線を描く関数の改善案①ーoffsetの加算タイミング

TilingのあるUV座標計算でOffsetを加算するタイミング

現在のバージョンではこうなっている。

float2 pixel    = uv.xy*tiling;
       pixel.x += offset;

この場合、offsetの影響力がTilingの値に影響を受けて、
offsetが1増えるごとに、1マス進む形になる=UV座標の移動距離がoffset / Tilingになる

一方で、こういった実装も考えられる。

uv.x += offset;
float2 pixel = uv.xy*tiling;

この場合、offsetの影響力がTilingの値に影響を受けず、 Offsetが1増えるごとに、UV座標が1増える=1周する。

どちらを選ぶべきか、後ほど検討してほしい。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.