Skip to content

Instantly share code, notes, and snippets.

View sugi-cho's full-sized avatar
😪
zzz

Hironori Sugino sugi-cho

😪
zzz
View GitHub Profile
//http://gamedev.stackexchange.com/questions/59797/glsl-shader-change-hue-saturation-brightness
vec3 rgb2hsv(vec3 c)
{
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
@sugi-cho
sugi-cho / Billboard-CastShadow.shader
Created November 26, 2015 14:27
ビルボードで、影を落とす、受ける、球。
Shader "Unlit/Billboard-CastShadow"
{
Properties
{
_DC ("diffuse", Color) = (0.5,0.5,0.5,1)
_SC ("Specular color (RGB), roughness (A)", Color) = (0.5,0.5,0.5,0.5)
_Size ("size", Float) = 1
}
CGINCLUDE
#define UNITY_PASS_SHADOWCASTER
Shader "Hidden/ShikakuKirakira"
{
Properties
{
_Speed ("speed", Float) = 2
_Scale ("scale", Float) = 10
_Size ("size", Float) = 0.5
}
CGINCLUDE
#include "UnityCG.cginc"
@sugi-cho
sugi-cho / ViewPortToPos.shader
Last active April 8, 2022 00:28
クリップ座標系から、ワールド座標へ変換するやつ。理解を深めた http://www.songho.ca/opengl/gl_projectionmatrix.html
Shader "Unlit/ViewPortToPos"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_VP ("viewport position", Vector) = (0.5,0.5,1,0)
}
SubShader
{
Tags { "RenderType"="Opaque" }

#UNITY_MATRIX_IT_MVの使い方とか View空間座標から、Object空間座標に変換する。
float4 objectSpacePos = mul(viewSpacePos, UNITY_MATRIX_IT_MV);

Projection空間座標から、View空間座標に変換 これは違った!!
float4 viewSpacePos = mul(eyeSpacePos, UNITY_MATRIX_P);

void vert(inout appdata_full v){
half4 worldPos = mul(_Object2World, v.vertex);
half4 viewPos = mul(UNITY_MATRIX_V, worldPos);
half4 eyePos = mul(UNITY_MATRIX_P, viewPos);
viewPos = mul(unity_CameraInvProjection, eyePos);
half4 localPos = mul(viewPos, UNITY_MATRIX_IT_MV);
v.vertex = localPos;
}
@sugi-cho
sugi-cho / Uneune.shader
Last active March 31, 2022 11:53
頂点をいじるシェーダーで、法線もいじる
Shader "Custom/Uneune" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
_BumpMap ("bump",2D) = "bump" {}
_VNF ("vert normal factor", Float) = 1.0
_MNF ("map normal factor", Float) = 1.0
}
shutdown -r -t 0 -f
@sugi-cho
sugi-cho / AlwaysOnTop.cs
Created September 30, 2021 15:26
Windowを強制的に一番上に持ってくる
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
@sugi-cho
sugi-cho / ShowMaterialEditor.cs
Last active July 16, 2021 18:59
show material's property in inspector in Unity use this function in Custom Editor Class.
void ShowMaterialEditor(Material[] ms){
for(int i = 0; i < ms.Length; i++){
Material m = ms[i];
if(m == null)
return;
Shader s = m.shader;
EditorGUILayout.LabelField(m.name);
EditorGUI.indentLevel++;
for(int j = 0; j < ShaderUtil.GetPropertyCount(s); j++){