Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031
<< October 2015 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Sponsored Links
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2022.03.28 Monday
スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - | pookmark |
            
2015.10.29 Thursday
Shader Lab の勉強

これは
http://docs.unity3d.com/Manual/SL-AlphaTest.html
の下から抜粋したソースを解説していきます。
シェーダーの処理順


Shader "Vegetation" {
    Properties {

 //インスペクタで変更できるプロパティ

//_Color(デフォルト白),
        _Color ("Main Color", Color) = (1, 1, 1, 1)

 //_MainTex(画像を設定できるように),
        _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
        //_MainTex ("Base", 2D) = "white" {}

 //_Cutoff(切り捨てるの値),
        _Cutoff ("Base Alpha cutoff", Range (0,.9)) = .7
    }
    SubShader {
    

 //つかってない
/*
        Tags {
           "Queue" = "Transparent"
            "RenderType" = "TransparentCutout"
            "Projector" = "False"
        }
*/

//ライトの影響を受けない
        Lighting Off
        

 // Render both front and back facing polygons. 前面と背面に面したポリゴンの両方をレンダリングします。
        Cull Off

/*
        CGPROGRAM //シェーダをこの範囲に書きますよ〜 はじめ
//SubShaderがサーフェイスシェーダである事をUnityに教える必要があります。

//そのために、SubShader内のおまじないの間に次のような#pragmaディレクティブを記述します

//#pragma surface surfaceFunction lightModel [optionalparams]

//#pragma surface と記述すると、UnityはそのSubShaderがサーフェイスシェーダであると認識します。
//続くsurfaceFunctionにはシェーダのエントリ関数名を記述します。
lightModelはサーフェイスシェーダでのライティングの仕方を指定します。
//これには"
Lambert"もしくは"BlinnPhong"という指定、もしくはカスタムライティングを指定できます。
//
LambertはDiffuse(拡散反射光)のライティングモデル、BlinnPhongはSpecular(鏡面反射光)の代表的なモデルです。

  • //lightModel - 使用するライティングモデル。
  • //組み込みライティングモデルは、Lambert (デフューズ) と BlinnPhong (スペキュラ) です。
  • //自前のライティングモデルを記述する方法に関しては、Custom Lighting Models ページを参照してください。


//[optionalparam]には、そのサーフェイスシェーダについてさらに細かい指定ができるのですが…沢山あり
//alphaまたはalpha - 物理ベースの照明機能のための:簡単な照明機能のための、
//および(premulアルファと同じ)あらかじめ乗算透明オート(フェードアルファと同じ)フェードイン透明度を選択します。
//alpha:fade - 伝統的なフェード・透明性を有効にします。
//alpha:premul - 乗算済みアルファ透明度を有効にします。
        #pragma surface surf Lambert alpha //SubShaderがサーフェイスシェーダであると認識させ、ランバートはDiffuse(拡散反射光)のライティングモデル+透明なマテリアル

 

//コンピュート シェーダ でのテクスチャ サンプラ
// テクスチャおよびサンプラはUnityで別オブジェクトではないため、コンピュート シェーダ で使用するためには Unity 特有のルールに従う必要があります:

// ネーミングについて、テクスチャ名と同じ名前にするか、

// または "sampler" を名前の始めに付与した名前 (例えば Texture2D MyTexの場合、 SamplerState samplerMyTex) のいずれかにします。
// さらには、"定義済み" のサンプラを使用します。

// 名前は、 "Linear" または "Point" (フィルタモードとして)、 かつ、 "Clamp" または "Repeat" (Wrapモードとして) 、をつける必要があります。

// 例えば "SamplerState MyLinearClampSampler" - これにより フィルタとして Linear 、かつ、 Wrapモードとして Clamp が使用されます。

        sampler _MainTex;//テクスチャ名と同名のサンプラ変数を一つ定義

        struct Input {
            float2 uv_Tex;//float2 としてuv_Texを宣言しています。
            float4 vtxColor : COLOR;// バーテックス頂点カラーfloat4型の変数名にセマンティクス「COLOR」を付けると取得できます。
        };

////#pragma surface と記述すると必要になるパラメーター:

  • //surfaceFunction - Cg で記述された Surface Shaders の関数です。
  • //これは、void surf (Input IN, inout SurfaceOutput o) という関数を持つことを意味します。
  • //ここの Input は前もって定義した構造体になります。
  • //Input は、surface 関数が必要とするテクスチャ座標と追加の自動変数を含む必要があります。

        void surf( Input IN, inout SurfaceOutput o ) {
          //  half4 color = tex2D( _MainTexIN.uv_Tex );// サーフェイスシェーダ内でtex2D関数を使う
          //  o.Albedo = color.rgb;//テクスチャからうけたRGBをアルベドにセットします。
          //  o.Alpha = color.a;//テクスチャからうけたAlpha
        }

        ENDCG//シェーダをこの範囲に書きますよ〜終わり
*/

        // first pass:
        // render any pixels that are more than [_Cutoff] opaque
        Pass {//Pass ブロックはオブジェクト形状を一回のみレンダリングするようにします。
            Color [_Color]//カラーにインスペクタの[_Color]値を与える。
            
            AlphaTest Greater [_Cutoff] //Greater ピクセルのアルファ値が AlphaValue[_Cutoff] より大きい場合のみレンダリング。
            //Blend SrcAlpha OneMinusSrcColor
            
//combine合成の計算式はカラーの RGB およびアルファを計算するのに使用されます。任意のオプションで、アルファの計算に別の計算式を指定できます。

 //Primary は lighting calculation の色または bound である場合は頂点カラーです。

 //Texture は SetTexture で指定された TextureName] です。(上を参照してください。)


            SetTexture [_MainTex] {
                combine texture * primarytexture //src1 と src2 を乗算。結果はどちらの入力よりも暗くなります。
            }
        }

        // Second pass:
        // render in the semitransparent details.
        Pass {//Pass ブロックはオブジェクト形状を一回のみレンダリングするようにします。
            Color [_Color]
             
// ZWrite off は Dont write to the depth buffer デプスバッファを描画しない。

//このオブジェクトのピクセルをデプスバッファに書き込みするか制御(デフォルトは On )。

//もし不透明なオブジェクトを描画する場合、オンにします。もし部分的に透過のエフェクトを描く場合、

//ZWrite Off に切り替えます。詳細については以下を参照してください。

            ZWrite off
//ZTest Less Don't write pixels we have already written. Pixcelは描画しない、すでに書き込まれているから。

  //ZWriteデプステストの実行方法。デフォルトは LEqual (すでに描画されているオブジェクトと距離が等しいか、

//より近い場合に描画します、それより遠い場合はオブジェクトで隠します)

            ZTest Less //Less なのでZTestも描画もしないです。

 // AlphaTest LEqual [_Cutoff] は Only render pixels less or equal to the value より小さいか等しい場合のみレンダリング

  //LEqual ピクセルのアルファ値が AlphaValue より小さいか等しい場合のみレンダリング。
            AlphaTest LEqual [_Cutoff]

            // Set up alpha blending
            Blend SrcAlpha OneMinusSrcAlpha //一般的なアルファブレンド

            SetTexture [_MainTex] {
                combine texture * primarytexture
            }
        }
    }
}

| whaison | Unity3d | 18:26 | comments(0) | - | pookmark |
            
2015.10.26 Monday
Mac OS X 10.10.4でOpenGLのプログラムを始める方法

Mac OS X 10.10.4
Xcode_7_beta_4.
OS X >Applacation >CommandLineTool

適当に設定


Build Phasesで Link Binary With Librariesの+を押す

OpenGLと入力すると出てくる。

GLUTと入力すると出てくる。


main.cにOpenGLとGLUTのヘッダを付け加える

OpenGLとGLUTのヘッダは

#include <OpenGL/gl.h>
#include <GLUT/glut.h>

となる。ここはWindowsと異なるので注意。
------------------------------------------------------------

//

//  main.c

//  opengl001

//

//  Created by whaison on 2015/10/26.

//  Copyright © 2015 whaison. All rights reserved.

//

#include <OpenGL/gl.h>

#include <GLUT/glut.h>

#include <stdio.h>

int main(int argc, const char * argv[]) {

    // insert code here...

    printf("Hello, World!¥n");

    return 0;

}

-----------------------------------------------------------
ヘッダを付け加えるのは別にmain.cじゃなくてもいいと思うけど、
(例えばmain.hというファイルを作ってそこに書く)
僕はC言語は詳しくないのでこうしています。

これで少なくともコンパイルはできるはずです。


コンソールに「Hello, World!」と表示されるはずです。



これでうまくコンパイルされるなら、
main.cの中で自由にGLUTとOpenGLのライブラリが使えるはずです。

OpenGLのプログラミングに関しては、
例えば以下のページを参考にしてみてください。

GLUTによる「手抜き」OpenGL入門

参考
http://nozawashinichi.sakura.ne.jp/fs/2009/07/macopengl.html

 

だけじゃつまらないので、ウィンドウを出してみました。
//

//  main.c

//  opengl002

//

//  Created by whaison on 2015/10/26.

//  Copyright (c) 2015 whaison. All rights reserved.

//

#include <OpenGL/gl.h>

#include <GLUT/glut.h>

void display(void)

{

}

int main(int argc, const char * argv[]) {

    // insert code here...

    printf("Hello, World!¥n");

    glutInit(&argc, argv);

    glutCreateWindow(argv[0]);

    glutDisplayFunc(display);

    glutMainLoop();

    return 0;

}


こんなウィンドウがでました!。

ウィンドウ塗りつぶし 太字の部分を追加して。。。

#include <GL/glut.h>
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
void init(void)
{
glClearColor(0.0, 0.0, 1.0, 1.0);
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
init();
glutMainLoop();
return 0;
}




ウィンドウ塗りつぶしました。


 
| whaison | OpenGL,OpenGLES,glsl,DirectX,hlsl,webGL,metal,vulkan | 17:55 | comments(0) | - | pookmark |