2010-02-14 4 views
1

이것은 단지 LARGE 광선 (및/또는 선분 또는 가장자리 등)에 대한 일반적인 질문과 렌더링 된 소프트웨어에서의 위치 raytracing 작업을 수행 중이거나 수행하지 않는 3D 엔진입니다. 나는 기초를 배우고 있으며 나는이 물건에 대해 많이 알지 못한다는 것을 처음으로 인정합니다. 그래서 친절하게 대해주십시오. :)벡터, 정점, 가장자리, 광선, 선 및 선분의 구현에 대한 매우 일반적인 질문

좋아요, 왜 내가 매개 변수화 된 선을 광선 대신 사용하지 않는지 궁금합니다 (또는 그렇습니까?). 나는 인터넷 주위에 몇 cpp 파일을 둘러 보았고 두 개의 리소스가 Ray.cpp 객체를 정의하는 것을 보았습니다. 하나는 꼭지점과 벡터, 다른 하나는 점과 벡터를 사용했습니다. 나는 또한 선과 선분 뒤에있는 수학에 익숙하지 않으므로 나와 함께 맨발로 가보 십시다. 저는 여러분이 법선이나 벡터만으로 무한한 선을 정의한 다음 그 선을 따라 교차점을 정의하여 선분을 그 무한 선의 부분 집합으로 생성 할 수 있다고 확신합니다. 이 방식으로 현재의 엔진을 구현하고있는 엔진이 있습니까? 아니면 이것에 대해 더 좋은 방법이 있습니까?

위키피디아에 따르면 벡터 공간에서 벡터의 선을 끝 점이 벡터 인 경우가 많습니다 (특히 u -> u + v). 벡터로 선을 정의 할 때 많이 사용됩니다 우주에서 이미 정의 된, 무한한 선을 교차시키기보다는 오히려 나는 이것에 대한 암시를 발견 할 수 없기 때문에 3d 엔진에서 이것을 적용 할 때 내 생각의 타당성에 대해 궁금해하게하고 심지어 Flash 3D Engine, Papervision에서 Ray 클래스를 살펴 보았습니다. 매개 변수로 6 개의 개별 숫자 값을 취한 다음 2 개의 다른 Number3D (Vector와 동일한 Papervision), 데이터 유형으로 반환합니다.

어쨌든, 실제 정의에 따라 이러한 저수준 부분을 구현하는 방법은 실제로 올바른 방법을 사용하는 무언가의 구현을 보는 데 관심이 있습니다. 이런 종류의 일에 대한 도움, 근원 또는 좋은 대화가 있으면 좋을 것입니다. : D

답변

1

당신은, 당신은 단지 정상 또는 벡터

없음을 가진 infinate 라인을 정의 할 수 있음을 확신 할 수 있어요. 벡터는 방향을으로 정의하지만 모든 평행선은 같은 방향을 공유하므로 하나를 선택하려면 선이 통과하는 특정 점을 사용하여 고정해야합니다.

라인은 일반적으로 Origin + Direction * K 형식으로 정의됩니다. 여기에서 K는 실제 값을 취합니다.이 형식은 다른 수학에서 쉽게 사용할 수 있기 때문입니다. 라인에서 두 점을 사용할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다 :) 예, 미안 해요, 나는 원점에서 말한 것입니다. 좋아, 내가 왜 이것에 대해 묻는지를 언급하면, 큐브의 8 개의 꼭지점을 취한다. 예를 들어, 그들이 교차하고있는 x, y, z 라인을 따라 점들을 밀어 낼 수 있다면, 이것은 같을 것이다. x, y 또는 z 축을 따라 슬라이딩하는 큐브가 오른쪽입니까? 구현과 관련하여 생각하는 것과 같은 방식일까요? 귀하의 예를 들어, 'K'slighlty 부정적인 귀하의 라인이 원점을 교차하게 만들까요? 많은 감사 –

+0

질문이 맞는지 확실하지 않습니다. 그림의 모든 점 (일명 정점)을 이동하면 그림 전체가 움직입니다. K를 특정 값으로 설정해도 행은 변경되지 않습니다. 대신 라인의 특정 지점을 선택합니다. 선은 무한한 양의 점으로 구성된 집합입니다. Origin + Dir * K 표기법에서, 주어진 점 P에 대해 P = Origin + Dir * K와 같은 K의 특정 값이 있습니다. 그리고 그 반대도 마찬가지입니다. 주어진 K 값을 방정식에 넣으면 그 점이 라인에 있습니다. – Andrew

+0

아, 알았어. 음, 그게 내가 의미했던 것 같아. 좋아, 그래서 그 라인을 따라 포인트를 움직일 수있는 능력을 생성합니다. 그래서 dir 벡터가 정규화되고 "K"가 0이되면 우리는 원점 위치에있게 될 것입니다. 실제로 여기에 3D 그래픽 용어로 정의 된 것은 무엇입니까? 점, 정점, * 선 *? 하하하 이제는 다른 점이 추가 될지, 아니면 동일한 점과 새로운 원점을 사용하여 별도의 점이 추가되어 가장자리를 만드는 데 연결되는지 이해할 수 없기 때문에 나를 던지고 있습니다. . 롤 피드백 건배 : D –

관련 문제