'분류 전체보기'에 해당되는 글 590건

  1. 2012.07.11 12.06.25_MON
  2. 2012.07.10 12.06.21_THU
  3. 2012.07.07 12.06.18_MON
  4. 2012.07.05 12.06.07_THU
  5. 2012.07.04 높은 지역에서만 파티클 날리기
  6. 2012.06.23 상속과 다형성
  7. 2012.06.22 Control 클래스 & Entity 클래스
  8. 2012.06.21 상속을 이용한 프로그램

12.06.25_MON

Houdini/SOP 2012. 7. 11. 14:15 |


120625_MON.hipnc


※ noise, sin, cos 는 -1 ~ +1 까지의 값을 리턴한다.

※ rand()는 0~1 까지의 값을 리턴한다.


◎ clip sop

# 커터칼로 자르는 듯한 노드.


◎ divide sop

- Remove Shared Edge

# 연결되지 않은 부분만 살리고 다 지움(외곽선만을 딴다. 면이 없는).



※ 연산속도가 delete 보다 clip이 빠름.


◎ cookie sop

- crease

# 부딪혀있는 부분만 남김(부딪히는).





※ rand($PT) > $CR

# 만약, rand($PT)가 0.5가 나오고 $CR이 1이 나왔다. 그러면 진한 색인 1을 살린다. 그리고 rand($PT)가 0.2가 나오고 $CR이 0.1이 나오면 $CR인 0.1을 지운다.

따라서, 진한색을 남기고 검은색은 듬성듬성 남긴다.(확률적으로 남겨둠)



◎ paint

- Accmulate to stencil

# 포토샵의 layout 처럼


- UV Radius

# UV상에서


- Stroke, oriendt Brush To Suface

# 노말 상관없이 칠해짐. 유용하다.


- Use Connectivity

# 이것은 연결안 된 부분은 칠하지 않는다.




※ paint sop과 관련된 sop들



※ $NCY => 총 복사 개수.




※ fit() 

# fit(num, -1, 1, ?, ?) => 이건 fit11()과 같다.


# fit(num, 0, 1, ?, ?) => 이건 fit01()과 같다. 



'Houdini > SOP' 카테고리의 다른 글

12.07.02_MON  (0) 2012.07.18
12.06.28_THU  (0) 2012.07.12
12.06.21_THU  (0) 2012.07.10
12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
Posted by scii
:

12.06.21_THU

Houdini/SOP 2012. 7. 10. 04:02 |

※ point 정보(point position)만을 가지고 있는 것을 "point cloud" 라 부른다.


※ obj 레벨에서 애니메이션, 시뮬레이션을 하는 것이 훨씬 가볍다. 반면, sop 레벨에서는 느리다. 

왜냐면, obj레벨에서는 그냥 있는 그대로를 통째로 옮기기 때문이고, sop레벨에서는 위에서 아래로 일일이 계산해야 하기 때문이다.


# $CEX, $CEY, $CEZ 입력단의 센터로 간다.



add sop


#  add sop의 particle - Add Particle System을 켜주면 포인트가 보인다 (따로 "." 체크를 안해도 보인다). 그리고 포인트의 컬로도 볼 수 있으므로 편리하다.


: 패턴에서 0-$N 을 하면 처음부터 끝까지 모두 연결됨. $N은 포인트의 마지막 번호이다.



$N-2를하면 포인트 마지막번호에서 -2값을 한 범위만 연결한다. 하지만 `(Backticks) 를 안 넣으면 제대로 된 실행 값이 안나온다. 


Group sop의 Create Ordered는 자기가 쓴 패턴대로(3-2-4-0) 이 순서대로 그룹을 짓는다는 해석이된다.

체크를 해제하면, 후디니 마음대로 순서를 정해 그룹이 되어진다.


위에서 내가 쓴 순서대로 그룹을 지었던 것을 쓴다는 것이 된다. 그러므로 3-2-4-0의 순서대로 연결이 된다.





attribute copy 

# 2번째 입력단을 1번째 입력단에 속성을 카피한다. 

# Other Attribute 에서 P(transform) 을 카피한다. 


point sop에 들어오는 2번째 입력단을 쓰겠다 라는 해석이 된다.


블렌드 값이 1이기 때문에 완전히 곱해진다. 즉, 그대로 된다.





scatter sop

- compute Number of points

# measure 노드처럼 primitive 면적을 계산해서 primitive 안에 포인트 갯수를 정해 넣을 수 있다.


- Scatter Based On Primitive Area

# primitive 면적에 관계없이 포인트를 "균등"하게 생성 (scatter sop은 UV를 기준으로 포인트를 만듦).


※ `(Backticks) 를 뷰포트상에서 치면 셀렉트 화면으로 돌아감.


※ Preserve Original

# 원래 그룹을 남겨 놓는다.


※ Houdini 에서 여러방법으로 포인트를 생성할 수 있지만 가장 빠른것은 Line sop에서 포인트를 생성하는 것이다. 

# primitive Type 에서 Points로 두고 포인트를 생성하면 된다.




Group sop

- Combine 탭에서 hand, head 그룹을 or(합침) 해서 foo라는 그룹을 생성한다.


Unshared Edges를 활성화하면, obj의 가장자리 엣지부분이 선택되어 진다.


'Houdini > SOP' 카테고리의 다른 글

12.06.28_THU  (0) 2012.07.12
12.06.25_MON  (0) 2012.07.11
12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
높은 지역에서만 파티클 날리기  (0) 2012.07.04
Posted by scii
:

12.06.18_MON

Houdini/SOP 2012. 7. 7. 04:00 |


exam.hipnc


◎ Vector Normalize (벡터 정규화) 단위 벡터


vector의 normalize 방법 3가지


1. facet 노드의 Make Normals Unit Length.



2. normalize 익스프레션.

 ex) point노드에서 normalize(vector3($NX, $NY, $NZ))[0]

※ [0]은 컴퍼넌트 (x 를 뜻함, [1]이면 y).



3. length 익스프레션.

ex) point 노드에서 1/length($NX, $NY, $NZ) * $NX





◎ Vector Add


두 벡터를 합하면 그 사이에 합한 벡터의 길이만큼의 벡터가 생긴다.




◎ Vector Subtract


$TX2 - $TX

$TY2 - $TY

$TZ2 - $TZ


ex) TX2는 $TX의 위치를 바라보게 된다.



sort 노드를 이용하며 포인트 넘버를 shift 하는 이유?


 - 그것은 각각의 포인트들을 서로 subtract 하기 위해서이다.




◎ Dot Product


dot(vector3($NX, $NY, $NZ), vector3($NX2, $NY2, $NZ2))

# 이렇게 닷을 구하면 벡터의 그림자 길이를 구한다.




※ 각도 구하기(벡터와 벡터의 사이) 

acos(dot(normalize(vector3($NX, $NY, $NZ), normalize(vector3($NX2, $NY2, $NZ2)))



※ Dot Product의 활용 예


dot(normalize(vector3($NX, $NY, $NZ), normalize(vector3($VX, $VY, $VZ))

# 이렇게 닷을 구하면 velocity가 향하는 닷을 구할 수 있다.







◎ Cross Product


- cross product는 vector 사이의 기준을 만듦(축)





# cross product 구하는 또 다른 공식 

point sop의 normals에서...


x = $NX * $NZ2 - $NZ * NY2


y = $NZ * NX2 - $NX * $NZ2


z = $NX * $NY2 - $NY * $NX2



◎ point Expression


point 익스프레션 -> REFout에서 현재 진행중인 모든 포인트의 컬러값 중 R을 가져온다.


'Houdini > SOP' 카테고리의 다른 글

12.06.25_MON  (0) 2012.07.11
12.06.21_THU  (0) 2012.07.10
12.06.07_THU  (0) 2012.07.05
높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
Posted by scii
:

12.06.07_THU

Houdini/SOP 2012. 7. 5. 02:02 |

#    attribute copy 노드 : 양쪽의 토폴로지가 같아야 한다.


#    add 노드 : point 정보만을 가져와서 용량이 작아지고 빠르다.


#    attribTransfer 노드 : attribute copy 와 비슷하나, attribTransfer 노드는 거리에 따라 속성이 복사된다. 즉, 일정한 거리가 유지되어있어야 복사가 된다.

- Distance Threshold : 1, Blend Width : 1~2 을 하면 input을 섞어서 쓴다. 블렌딩이 된다.(attribTransfer 노드는 상당히 느리다. 그래서 Distance Threshold, Blend Width를 섞어서 이용한다.)



※ vector * scalar = vector의 길이가 길어진다.


이것을 이용한 예)



※ point 노드에서 Custom을 이용한 예) 결과는 똑같다.




ex.hipnc


※ vector *  vector 를 하는 것은 translate 노드 밖에 없다.


※ merge 노드는 들어오는 순서대로 포인트 번호가 붙는다.


※ transform 노드의 Recompute Point Normals 를 꺼주면 Normal을 transform 노드안에서 재계산 해주지 않는다.


※ $TX + $NX, $TY + $NY, $TZ + $NZ


'Houdini > SOP' 카테고리의 다른 글

12.06.21_THU  (0) 2012.07.10
12.06.18_MON  (0) 2012.07.07
높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
point sop과 foreach sop  (0) 2012.05.03
Posted by scii
:






'Houdini > SOP' 카테고리의 다른 글

12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
ramp를 활용한 애니메이션  (0) 2012.05.18
point sop과 foreach sop  (0) 2012.05.03
RGB나누기  (0) 2012.05.02
Posted by scii
:

상속과 다형성

Programming/C++ 2012. 6. 23. 04:57 |

객체 포인터의 참조관계


※ 상속은 IS-A 관계의 표현을 위한 수단이다.


Person* ptr;                // 포인터 변수 선언

ptr = new Person();    // 포인터 변수의 객체 참조


위의 두 문장이 실행되면, 포인터 ptr은 Person 객체를 가리키게 된다. 그런데 Person형 포인터는 Person 객체뿐만 아니라, Person 을 상속하는 유도 클래스의 객체도 가리킬 수 있다.


- exsample - 



33행: Student는 Person을 상속하므로, Person형 포인터 변수는 Student 객체를 가리킬 수 있다.

34행: PartTimeStudent는 Person을 간접 상속하므로, Person형 포인터 변수는 PartTimeStudent 객체를 가리킬 수 있다.

35행: PartTimeStudent는 Student를 상속하므로, Student형 포인터 변수는 PartTimeStudent객체를 가리킬 수 있다.


PartTimeStudent 는 Person을 직접 상속하지는 않지만, Person을 상속하는 Student를 상속함으로써, Person 클래스를 간접 상속하고 있다.


"C++에서, A형 포인터 변수는 A객체 또는 A를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다(객체의 주소 값을 저장할 수 있다)."



Posted by scii
:

Control class의 특징


▶ 프로그램 전체의 기능을 담당한다. 따라서 기능적 성격이 강한 클래스이다.


▶ 컨트롤 클래스만 봐도 프로그램의 전체 기능과 흐름을 파악할 수 있다.


반면, Control 클래스가 아닌 대부분의 클래스를 가리켜 'Entity 클래스'라 한다. 


Entity class의 특징


데이터적 성격이 강하다. 따라서 파일 및 데이터 베이스에 저장되는 데이터를 소유하고 있다.


▶ 프로그램의 기능을 파악하는데 도움을 주지는 못한다.


▶ 그러나 프로그램상에서 관리되는 데이터의 종류를 파악하는 데는 도움이 된다.


Posted by scii
:

정사각형을 의미하는 Square 클래스와 직사각형을 의미하는 Rectangle 클래스를 정의한다. 그런데 정사각형은 직사각형의 일종이므로, 아래와 같은 클래스의 상속관계가 이루어진다.


정사각형 is a 직사각형






책을 의미하는 Book 클래스와 '전자 책'을 의미하는 EBook 클래스를 정의한다. 그런데 '전자 책'도 '책'의 일종이므로, 아래와 같은 형태로 클래스의 상속관계를 가진다.


전자 책 is a


#include <iostream>

#include <cstring>

using namespace std;


class Book

{

private:

char* title;

char* isbn;

int price;

public:

Book(char* title, char* isbn, int price)

:price(price)

{

this->title = new char[strlen(title)+1];

this->isbn = new char[strlen(isbn)+1];


strcpy(this->title, title);

strcpy(this->isbn, isbn);

}


void ShowBookInfo(void) const

{

cout<<"제목: "<<title<<endl;

cout<<"ISBN: "<<isbn<<endl;

cout<<"가격: "<<price<<endl;

}


~Book()

{

delete []title;

delete []isbn;

}

};


class EBook :public Book

{

private:

char* DRMKey;

public:

EBook(char* title, char* isbn, int price, char* key)

:Book(title, isbn, price)

{

DRMKey = new char[strlen(key)+1];

strcpy(DRMKey, key);

}


void ShowEBookInfo(void) const

{

ShowBookInfo();

cout<<"인증키: "<<DRMKey<<endl;

}


~EBook()

{

delete []DRMKey;

}

};


int main(void)

{

Book book("Houdini Book", "123", 15000);

book.ShowBookInfo();

cout<<endl;


EBook ebook("Houdini E-Book", "456", 12000, "asdf");

ebook.ShowEBookInfo();


return 0;

}



'Programming > C++' 카테고리의 다른 글

상속과 다형성  (0) 2012.06.23
Control 클래스 & Entity 클래스  (0) 2012.06.22
상속을 위한 조건  (0) 2012.06.19
protected 선언과 세 가지 형태의 상속(public, protected, private)  (0) 2012.06.13
상속(inheritance)  (0) 2012.06.06
Posted by scii
: