Skip to content

Instantly share code, notes, and snippets.

@hiroakioishi
hiroakioishi / ConvertMatrixToQuaternion.cs
Created July 22, 2016 09:49
[Unity:C#]回転マトリックスをQuaternionに変換
Quaternion ConvertMatrixToQuaternion (Matrix4x4 m)
{
var qw = Mathf.Sqrt (1.0f + m.m00 + m.m11 + m.m22) / 2.0f;
var qx = (m.m21 - m.m12) / (4.0f * qw);
var qy = (m.m02 - m.m20) / (4.0f * qw);
var qz = (m.m10 - m.m01) / (4.0f * qw);
return new Quaternion (qx, qy, qz, qw);
}
@hiroakioishi
hiroakioishi / LookAtMatrix.cs
Created July 22, 2016 09:47
[Unity:C#]LookAtMatrixを生成
Matrix4x4 LookAtMatrix (Vector3 center, Vector3 eye, Vector3 up) {
var F = (center - eye);
var f = F / Mathf.Max (F.magnitude, Mathf.Epsilon);
var s = Vector3.Cross (f, up);
var S = s / Mathf.Max (s.magnitude, Mathf.Epsilon);
var u = Vector3.Cross (s, f);
Matrix4x4 m = new Matrix4x4 ();
m.SetColumn (0, new Vector4 ( s.x, s.y, s.z, 0));
@hiroakioishi
hiroakioishi / AutoInvisibleCursor.cs
Created July 20, 2016 03:42
[Unity]マウスを動かさないでいると指定秒後にカーソルの表示を消す。動かすと表示される。
using UnityEngine;
using System.Collections;
public class AutoInvisibleCursor : MonoBehaviour {
[Range (0.0f, 15.0f)]
public float TimeToHide = 5.0f;
Vector2 previousMousePosition;
Vector2 currentMousePosition;
@hiroakioishi
hiroakioishi / WindowLayout.cs
Created June 24, 2016 20:45
UnityStandalonePlayer(Windows)のウィンドウの位置とサイズを制御する
using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;
public class WindowLayout : MonoBehaviour {
public string WindowName = "WindowName";
public int PositionX = 0;
public int PositionY = 0;
@hiroakioishi
hiroakioishi / PSBlend.cginc
Created May 7, 2016 08:33
[Unity]Photoshop Blend cginc
// ------------------------------------------------------------
// Photoshop Color Blend
// @author irishoak
// ------------------------------------------------------------
// Branchless RGB2HSL implementation from : https://www.shadertoy.com/view/MsKGRW
float3 rgb2hsl(float3 c){
float epsilon = 0.00000001;
float cmin = min( c.r, min( c.g, c.b ) );
float cmax = max( c.r, max( c.g, c.b ) );
@hiroakioishi
hiroakioishi / [MAXScript]LineKnotPositionDataExporter.ms
Created March 30, 2016 15:45
選択したLineのknotのpositionのデータを.csvに出力する
/* --------------------------------
LineKnotPositionDataExporter
@ author OISHI Hiroaki oishi@team-lab.com
@ date 2016/03/30
@ update 2016/03/30
[Main Function]
Export selected line knot position data to .csv file
[csv format]
@hiroakioishi
hiroakioishi / getParticleLocationDataAndSaveToTextFile.py
Last active October 4, 2016 07:50
[Blender] パーティクルの位置データをテキストファイルに保存する
import bpy
obj = bpy.context.scene.objects['ObjectName']
ptr = obj.particle_systems["ParticleSystem"].particles
text_file = open("vertices.txt", "w")
for p in ptr:
text_file.write(str(p.location) + "\n")
text_file.close()
@hiroakioishi
hiroakioishi / PoissonDiskSampler3D.cs
Last active April 7, 2025 08:15
Implementation of Poisson Disk Sampling for 3D
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
/// Implementation for 3D from Gregory Schlomoff's Unity source: http://gregschlom.com/devlog/2014/06/29/Poisson-disc-sampling-Unity.html
///
/// Usage:
/// PoissonDiskSampler3D sampler = new PoissonDiskSampler3D(10, 5, 7.5f, 0.3f);
/// foreach (Vector3 sample in sampler.Samples()) {
/// // ... do something, like instantiate an object at (sample.x, sample.y, sample.z) for example:
@hiroakioishi
hiroakioishi / RandomInsideUnitSphere.cs
Last active January 7, 2016 07:26
球体内に一様に分布した3次元のランダムの値を得る
// https://ridlow.wordpress.com/2014/10/22/uniform-random-points-in-disk-annulus-ring-cylinder-and-sphere/
Vector3 RandomInsideUnitSphere () {
float phi = 2 * Mathf.PI * Random.value;
float th = Mathf.Acos(1.0 - 2.0 * Random.value);
float r = Mathf.Pow(Random.value, 0.333333333);
float x = r * Mathf.Sin(th) * Mathf.Cos(phi);
float y = r * Mathf.Sin(th) * Mathf.Sin(phi);
@hiroakioishi
hiroakioishi / DepthMapGenerator.cs
Last active December 6, 2015 14:28
Unity: Kinect v2 で GetDepthMap () で取得可能なデプスマップを生成する
using UnityEngine;
using System.Collections;
using Windows.Kinect;
public class DepthMapGenerator : MonoBehaviour {
public GameObject depthSourceManager;
private DepthSourceManager depthSourceManagerScript;
[Range (1, 8000)]