나는 아주 간단 three.js를 프로젝트에서 일하고 있어요, 그것은 꽤 좋은 방법 최적화, 나는 생각합니다. 저는 WebGL 렌더러를 사용하여 오디오 신호에서 50ms마다 추출 된 많은 양의 보데 플롯을 표시합니다. 이것은 꽤 멋지지만 분명히 Bode를 더 많이 표시할수록 더 느려집니다. 또한 Bodes는 일정한 속도로 움직이며, 새로운 Bodes가 표시 될 공간을 허용합니다.
나는 인터넷에서 발견 된 모든 "기본"최적화를 구현 한 시점에 있으며, 나쁜 컴퓨터 (nVidia GT 210)로 표시되는 약 10.000.000 라인에서 30fps를 지속적으로 얻을 수있었습니다. Core i3 2100 ...). 이 작업 프로젝트로
참고도 내가 not using any lights
, 반사 ... 기본적인 라인 =)
해요, 난 ... 스크린 샷/코드, 유감을 표시 허용되지 않아
현재 구현 :
나는 THREE.Line을 통해 각각 표시되는 모든 Bodes를 저장하기 위해 배열을 사용하고 있습니다.
FYI, 실제로 2000 THREE.Line이 사용됩니다.
보드가 표시되고 40 초 동안 이동하면 보드가 삭제되고 THREE.Line이 다른 보드와 재사용됩니다. 이동하려면 modifying THREE.Line.position property
입니다.
나는 수동으로하고 있기 때문에 이미 내 장면과 개체 매트릭스 autoUpdate를 비활성화했음을 유의하십시오. (Thx가 Volune을 가리키고 있음).
내 질문 :
가 THREE.Line.position 수정이 렌더러가 이미 수행 한 몇 가지 무거운 계산을 유도 하는가? 또는 three.js는 내 개체가 변경되지 않았 음을 알고 은 이것을 피할 수 있습니까?
즉
, 나는
는 ... 그의 매트릭스 등을 업데이트하지 않고, 혼자 떠나는 것보다 단지 번역 된 동일한 개체를 업데이트/렌더링하면 렌더링 과정에서 무거운 있는지 알고 싶습니다 ThreeJS에서 동일한 객체를 여러 번 렌더링하는 것과 관련된 낮은 수준의 최적화가 있습니까? 객체를 이동할 때이 최적화가 취소 되었습니까?
그렇다면 다른 방법을 생각해보십시오 : 두 개의 큰 메쉬를 사용하여 서로 접을 수는 있지만 각 프레임의 형상을 병합/삭제하는 것이 좋습니다 ... 더 좋을 수도 있습니다. ?
미리 감사드립니다.
들으 보인다, 난, 사실) 꽤 흥미 bufferSubData을 = 몰랐다 자동 업데이트에 대한 당신 지적했다 며칠 전, 그것을 해제하고 수동으로 업데이 트하는 시도했다 20 % fps를 업그레이 드했다. 이것은 내 질문과 관련된 렌더링 프로세스의 깊이가 명확하지 않다는 것을 알고 있습니다. 나는 번역/번역 된 동일한 개체를 업데이 트하는 경우 그냥 혼자두고, 그의 매트릭스 등을 업데이 트하지 않고 훨씬 무거운 것을 알고 싶습니다 ... BTW 훌륭한 게시물,주고 rep 및 편집 내 게시물. – Hotted24
현재 2 개의 큰 메쉬를 시도 중이라는 것을 잊어 버리고 결과를보고 할 것입니다 =) – Hotted24