Skip to content

Commit

Permalink
updating old codes;
Browse files Browse the repository at this point in the history
  • Loading branch information
turesnake committed Apr 4, 2019
1 parent 27ea4d2 commit 009f4cb
Show file tree
Hide file tree
Showing 24 changed files with 292 additions and 418 deletions.
18 changes: 3 additions & 15 deletions shaders/pixGpgpu.fs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ float zOffBig = 0.2;
float zOffMid = 7.5;
float zOffSml = 17.8;

float XYScale = 0.9; //- 将 simplex-noise 压扁些
// 这个值可能被丢弃...

float seaLvl; //- 海平面。 值越小,land区越大。通过平滑曲线生成


Expand Down Expand Up @@ -86,18 +83,9 @@ void main()
// alti.val
//------------------//
//--- 使用速度最快的 2D-simplex-noise ---
vec2 tmpV2;
tmpV2 = (pixCFPos + altiSeed_pposOffBig) * freqBig;
tmpV2.x *= XYScale;
float pnValBig = simplex_noise2( tmpV2 ) * 100.0 - seaLvl; // [-100.0, 100.0]

tmpV2 = (pixCFPos + altiSeed_pposOffMid) * freqMid;
tmpV2.x *= XYScale;
float pnValMid = simplex_noise2( tmpV2 ) * 50.0 - seaLvl; // [-50.0, 50.0]

tmpV2 = (pixCFPos + altiSeed_pposOffSml) * freqSml;
tmpV2.x *= XYScale;
float pnValSml = simplex_noise2( tmpV2 ) * 20.0 - seaLvl; // [-20.0, 20.0]
float pnValBig = simplex_noise2( (pixCFPos + altiSeed_pposOffBig) * freqBig ) * 100.0 - seaLvl; // [-100.0, 100.0]
float pnValMid = simplex_noise2( (pixCFPos + altiSeed_pposOffMid) * freqMid ) * 50.0 - seaLvl; // [-50.0, 50.0]
float pnValSml = simplex_noise2( (pixCFPos + altiSeed_pposOffSml) * freqSml ) * 20.0 - seaLvl; // [-20.0, 20.0]
//---------

float altiVal = floor(pnValBig + pnValMid + pnValSml);
Expand Down
71 changes: 32 additions & 39 deletions shaders/waterAnimCanvas.fs
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,27 @@ float zOffBig = 0.2;
float zOffMid = 7.5;
float zOffSml = 17.8;

float XYScale = 0.9; //- 将 simplex-noise 压扁些
// 这个值可能被丢弃...


float seaLvl; //- 海平面。 值越小,land区越大。通过平滑曲线生成



//-- 水域 5阶颜色 --
//--- 鲜艳版 ---
/*
vec3 color_sea_2 = vec3( 0.21, 0.41, 0.48 );
vec3 color_sea_3 = vec3( 0.19, 0.32, 0.43 );
vec3 color_sea_4 = vec3( 0.16, 0.27, 0.37 );
vec3 color_sea_5 = vec3( 0.13, 0.24, 0.32 );
vec3 color_sea_6 = vec3( 0.11, 0.21, 0.27 );
*/

//--- old ----
vec3 color_sea_2 = vec3( 0.18, 0.32, 0.38 );
vec3 color_sea_3 = vec3( 0.16, 0.26, 0.34 );
vec3 color_sea_4 = vec3( 0.14, 0.22, 0.30 );
vec3 color_sea_5 = vec3( 0.12, 0.20, 0.26 );
vec3 color_sea_6 = vec3( 0.10, 0.18, 0.22 );


//============ funcs ===========//
//-- qualifer/限定符:
Expand Down Expand Up @@ -109,22 +124,13 @@ void main()
// alti.val
//------------------//
//--- 使用速度最快的 2D-simplex-noise ---
vec2 tmpV2;
tmpV2 = (pixCFPos + altiSeed_pposOffBig) * freqBig;
tmpV2.x *= XYScale;
float pnValBig = simplex_noise2( tmpV2 ) * 100.0 - seaLvl; // [-100.0, 100.0]

tmpV2 = (pixCFPos + altiSeed_pposOffMid) * freqMid;
tmpV2.x *= XYScale;
float pnValMid = simplex_noise2( tmpV2 ) * 50.0 - seaLvl; // [-50.0, 50.0]

tmpV2 = (pixCFPos + altiSeed_pposOffSml) * freqSml;
tmpV2.x *= XYScale;
float pnValSml = simplex_noise2( tmpV2 ) * 20.0 - seaLvl; // [-20.0, 20.0]

tmpV2 = pixCFPos * freqAnim;
tmpV2.x *= XYScale;
float pnValAnim = simplex_noise3( tmpV2.x, tmpV2.y, tm );
float pnValBig = simplex_noise2( (pixCFPos + altiSeed_pposOffBig) * freqBig ) * 100.0 - seaLvl; // [-100.0, 100.0]
float pnValMid = simplex_noise2( (pixCFPos + altiSeed_pposOffMid) * freqMid ) * 50.0 - seaLvl; // [-50.0, 50.0]
float pnValSml = simplex_noise2( (pixCFPos + altiSeed_pposOffSml) * freqSml ) * 20.0 - seaLvl; // [-20.0, 20.0]

float pnValAnim = simplex_noise3( pixCFPos.x * freqAnim,
pixCFPos.y * freqAnim,
tm );
//-----------------

pnValAnim = (pnValAnim - 1.0) * 10.0 - 10.0; //- 只有负值
Expand Down Expand Up @@ -178,7 +184,6 @@ void main()
altiLvl = -6.0;
}


//----------------
if( altiLvl < -6.0 ){
altiLvl = -6.0;
Expand All @@ -190,27 +195,16 @@ void main()
//------------------//
// color
//------------------//
if( altiLvl > -1.0 ){ //- land
//color = vec3( 0.24, 0.36, 0.44 );
//color = vec3( 0.07, 0.59, 0.8 );
color = vec3( 0.18, 0.32, 0.38 );
}else if( altiLvl == -1.0 ){
//color = vec3( 0.24, 0.36, 0.44 );
//color = vec3( 0.07, 0.59, 0.8 );
color = vec3( 0.18, 0.32, 0.38 );
}else if( altiLvl == -2.0 ){
color = vec3( 0.18, 0.32, 0.38 );
//color = vec3( 0.2, 0.4, 0.6 );
if( altiLvl >= -2.0 ){
color = color_sea_2;
}else if( altiLvl == -3.0 ){
color = vec3( 0.16, 0.26, 0.34 );
//color = vec3( 0.50, 0.50, 0.50 );
color = color_sea_3;
}else if( altiLvl == -4.0 ){
color = vec3( 0.14, 0.22, 0.30 );
//color = vec3( 0.70, 0.70, 0.70 );
color = color_sea_4;
}else if( altiLvl == -5.0 ){
color = vec3( 0.12, 0.20, 0.26 );
color = color_sea_5;
}else{
color = vec3( 0.10, 0.18, 0.22 );
color = color_sea_6;
}

//------------------//
Expand Down Expand Up @@ -245,7 +239,6 @@ void prepare(){
//--------------------------//
//-- 左下坐标系 [0,1]
lb = TexCoord;
//lb.y *= 0.5;
//---
lbAlign = lb;
lbAlign.y *= SCR_HEIGHT/SCR_WIDTH;
Expand Down
122 changes: 39 additions & 83 deletions src/Engine/animFrameSet/AnimFrameSet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,29 +52,29 @@ void AnimFrameSet::init(){
//--------------------//
// 生成 name
//--------------------//
auto lst_slash_idx = lpath_pic.rfind( '/' ); //- 指向最后一个 '/'
auto lst_slash_idx = this->lpath_pic.rfind( '/' ); //- 指向最后一个 '/'
assert( lst_slash_idx != std::string::npos );
//- lst 等于 "dog_ack_01.P.png"
lst.assign( (lpath_pic.begin()+lst_slash_idx+1), lpath_pic.end() );
lst.assign( (this->lpath_pic.begin()+lst_slash_idx+1), this->lpath_pic.end() );

auto point_idx = lst.find( '.', 0 ); //- 指向第一个 '.'
assert( point_idx != std::string::npos );
name.assign( lst.begin(), (lst.begin()+point_idx) );
this->name.assign( lst.begin(), (lst.begin()+point_idx) );

//--------------------//
// 生成 lpath_pjt
//--------------------//
point_idx = lpath_pic.find( '.', 0 ); //- 指向第一个 '.'
point_idx = this->lpath_pic.find( '.', 0 ); //- 指向第一个 '.'
//- lpath_pjt 暂时等于 "/animal/dog_ack_01"
lpath_pjt.assign( lpath_pic.begin(), (lpath_pic.begin()+point_idx) );
lpath_pjt += ".J.png";
this->lpath_pjt.assign( this->lpath_pic.begin(), (this->lpath_pic.begin()+point_idx) );
this->lpath_pjt += ".J.png";

//--------------------//
// 生成 lpath_shadow
//--------------------//
//- lpath_shadow 暂时等于 "/animal/dog_ack_01"
lpath_shadow.assign( lpath_pic.begin(), (lpath_pic.begin()+point_idx) );
lpath_shadow += ".S.png";
this->lpath_shadow.assign( this->lpath_pic.begin(), (this->lpath_pic.begin()+point_idx) );
this->lpath_shadow += ".S.png";


//----------------------------------------//
Expand All @@ -85,22 +85,22 @@ void AnimFrameSet::init(){
S_frame_data_ary.clear();

IntVec2 tmpv2; //-tmp
pixNum_per_frame = load_and_divide_png( tpr::path_combine( path_animFrameSets, lpath_pic ),
frameNum,
totalFrameNum,
this->pixNum_per_frame = load_and_divide_png( tpr::path_combine( path_animFrameSets, this->lpath_pic ),
this->frameNum,
this->totalFrameNum,
P_frame_data_ary );

tmpv2 = load_and_divide_png( tpr::path_combine( path_animFrameSets, lpath_pjt ),
frameNum,
totalFrameNum,
tmpv2 = load_and_divide_png( tpr::path_combine( path_animFrameSets, this->lpath_pjt ),
this->frameNum,
this->totalFrameNum,
J_frame_data_ary );
assert( tmpv2 == pixNum_per_frame );
assert( tmpv2 == this->pixNum_per_frame );

tmpv2 = load_and_divide_png( tpr::path_combine( path_animFrameSets, lpath_shadow ),
frameNum,
totalFrameNum,
tmpv2 = load_and_divide_png( tpr::path_combine( path_animFrameSets, this->lpath_shadow ),
this->frameNum,
this->totalFrameNum,
S_frame_data_ary );
assert( tmpv2 == pixNum_per_frame );
assert( tmpv2 == this->pixNum_per_frame );

//---------------------------------//
handle_pjt();
Expand All @@ -109,15 +109,15 @@ void AnimFrameSet::init(){
//---------------------------------//
// create GL.texNames
//---------------------------------//
create_texNames( totalFrameNum,
pixNum_per_frame,
create_texNames( this->totalFrameNum,
this->pixNum_per_frame,
P_frame_data_ary,
texNames_pic );
this->texNames_pic );

create_texNames( totalFrameNum,
pixNum_per_frame,
create_texNames( this->totalFrameNum,
this->pixNum_per_frame,
S_frame_data_ary,
texNames_shadow );
this->texNames_shadow );
}


Expand All @@ -127,19 +127,20 @@ void AnimFrameSet::init(){
*/
void AnimFrameSet::handle_pjt(){

int pixNum = pixNum_per_frame.x * pixNum_per_frame.y; //- 一帧有几个像素点
int pixNum = this->pixNum_per_frame.x *
this->pixNum_per_frame.y; //- 一帧有几个像素点
Pjt_RGBAHandle jh {5};
framePoses.resize( totalFrameNum );
this->framePoses.resize( this->totalFrameNum );

IntVec2 pixPPos; //- tmp. current pix ppos
IntVec2 rootAnchorOff; //- tmp
IntVec2 rootColliEntHeadOff; //- tmp

for( int f=0; f<totalFrameNum; f++ ){ //--- each frame ---
for( int f=0; f<this->totalFrameNum; f++ ){ //--- each frame ---
for( int p=0; p<pixNum; p++ ){ //--- each frame.pix [left-bottom]

pixPPos.set( p%pixNum_per_frame.x,
p/pixNum_per_frame.x );
pixPPos.set( p%this->pixNum_per_frame.x,
p/this->pixNum_per_frame.x );

jh.set_rgba( J_frame_data_ary.at(f).at(p), pixPPos );
if( jh.is_emply() == true ){
Expand All @@ -158,17 +159,17 @@ void AnimFrameSet::handle_pjt(){

if( jh.is_rootColliEntHead() == true ){
rootColliEntHeadOff = pixPPos;
framePoses.at(f).pushBack_the_rootColliEntHead( jh.get_colliEntHead() );
this->framePoses.at(f).pushBack_the_rootColliEntHead( jh.get_colliEntHead() );
}
if( jh.is_colliEntHead() == true ){
framePoses.at(f).pushBack_new_colliEntHead( jh.get_colliEntHead() );
this->framePoses.at(f).pushBack_new_colliEntHead( jh.get_colliEntHead() );
}
}//------ each frame.pix ------

//-- 注意,顺序不能错!!! --//
framePoses.at(f).set_rootAnchorPos( rootAnchorOff, rootColliEntHeadOff );
framePoses.at(f).calc_ceh_pposOff_fromRootAnchor();
framePoses.at(f).check(); //-- MUST --//
this->framePoses.at(f).set_rootAnchorPos( rootAnchorOff, rootColliEntHeadOff );
this->framePoses.at(f).calc_ceh_pposOff_fromRootAnchor();
this->framePoses.at(f).check(); //-- MUST --//

}//-------- each frame -------
}
Expand All @@ -180,10 +181,11 @@ void AnimFrameSet::handle_pjt(){
*/
void AnimFrameSet::handle_shadow(){

int pixNum = pixNum_per_frame.x * pixNum_per_frame.y; //- 一帧有几个像素点
int pixNum = this->pixNum_per_frame.x *
this->pixNum_per_frame.y; //- 一帧有几个像素点
RGBA color_shadow { 0,0,0, 255 };

for( int f=0; f<totalFrameNum; f++ ){ //--- each frame ---
for( int f=0; f<this->totalFrameNum; f++ ){ //--- each frame ---
for( int p=0; p<pixNum; p++ ){ //--- each frame.pix [left-bottom]

RGBA &rgbaRef = S_frame_data_ary.at(f).at(p);
Expand All @@ -201,49 +203,3 @@ void AnimFrameSet::handle_shadow(){
}
}


/* ===========================================================
* debug
* -----------------------------------------------------------
* -- 向终端输出 本 AnimFrameSet 的信息,用来 debug
*/
/*
void AnimFrameSet::debug() const{
cout<< "\nname = " << name
<< "\nlpath_pic = " << lpath_pic
<< "\nlpath_pjt = " << lpath_pjt
<< "\npixNum_per_frame.x = " << pixNum_per_frame.x
<< "\npixNum_per_frame.y = " << pixNum_per_frame.y
<< "\nframeNum.x = " << frameNum.x
<< "\nframeNum.y = " << frameNum.y
<< endl;
cout << "rootAnchors: " << endl;
for( auto i : rootAnchors ){
cout << " " << i.x
<< ", " << i.y
<< endl;
}
cout << "texNames_pic: " << endl;
for( auto i : texNames_pic ){
cout << " " << i << endl;
}
cout << "pjtMasks: " << endl;
for( int j=0; j<pjtMasks.size(); j++ ){
cout << " " << j << " frame: " << endl;;
for( int i=0; i<pjtMasks[j].size(); i++ ){
IntVec2 pix = pjtMasks[j][i];
cout << " " << pix.x
<< ", " << pix.y
<< endl;
}
cout << endl;
}
}
*/

8 changes: 2 additions & 6 deletions src/Engine/animFrameSet/AnimFrameSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,12 @@ class AnimFrameSet{
frameNum(_frameNum),
totalFrameNum(_totalFrameNum)
{
assert( _timeSteps.size() == totalFrameNum );
timeSteps.insert( timeSteps.end(), _timeSteps.begin(), _timeSteps.end() );
assert( _timeSteps.size() == this->totalFrameNum );
this->timeSteps.insert( this->timeSteps.end(), _timeSteps.begin(), _timeSteps.end() );
}


void init();

//void debug() const; //- 向终端输出 本 AnimFrameSet 的信息,用来 debug

//======== vals ========//
//-- 本动画动作 的name。 起到 id 的作用。
//-- 是否使用字符串有待商榷,取决于,是否会跟随go数据存入硬盘中。
Expand Down Expand Up @@ -117,7 +114,6 @@ class AnimFrameSet{
private:
void handle_pjt();
void handle_shadow();

};


Expand Down
Loading

0 comments on commit 009f4cb

Please sign in to comment.