2016-11-02 17 views
5

Tôi có SCNScene với các đối tượng hoạt hình (. dae files) và tôi cũng có SCNRender khởi tạo với openGLContext. Khi tôi đặt cảnh hoạt hình của tôi thành hiển thị này, tôi không thấy hoạt ảnh, nhưng khi tôi đặt cảnh hoạt ảnh của mình thành SCNView, tôi thấy hoạt ảnh.cảnh SCNRender với các đối tượng hoạt hình

làm thế nào tôi thiết lập Render:

self.renderer = [SCNRenderer rendererWithContext:_openGLContext options:nil]; 
self.renderer.autoenablesDefaultLighting = YES; 
self.renderer.playing = YES; 
self.renderer.scene = myAnimatedScene; 

Tôi hiểu rằng OpenGL chỉ có thể vẽ đối tượng, nó không biết gì về các thiết lập hình ảnh động trong tập tin .dae tôi

Ai đó có thể giải thích cho tôi như thế nào Tôi có thể vẽ cảnh động bằng cách sử dụng SCNRender được khởi tạo với openGLContext?

Trả lời

0

Dường như khi gọi hàm sau:

renderer.render(atTime: time, viewport: viewport, 
       commandBuffer: commandBuffer, 
       passDescriptor: renderPassDescriptor) 

thời tham số là thực sự quan trọng. Trước khi tôi chỉ để lại nó với số không và không có hình động. Nếu bạn đặt nó với CFAbsoluteTimeGetCurrent(), có vẻ như bạn chỉ có thể có được một hình ảnh động (Tôi vừa thử nghiệm nó. Anh hùng trò chơi của tôi có một hành động bắn súng cũng như đi bộ, và bằng cách thiết lập atTime với CFAbsoluteTimeGetCurrent() , chỉ xuất hiện hình ảnh đi bộ.)

Tuy nhiên, các tình huống của chúng tôi hơi khác một chút. Trong trường hợp của tôi, tôi cũng có một SCNView làm cho quan điểm của anh hùng. Vì vậy, để chạy tất cả các hình ảnh động, tôi đã tạo một biến toàn cầu:

var globeTime:TimeInterval = 0 

Và lưu thời gian hiện tại trong chức năng renderer của SCNView:

func renderer(_ aRenderer: SCNSceneRenderer, 
       updateAtTime time: TimeInterval) { 
    globeTime = time 
    //... 
} 

Và cuối cùng thông qua nó để SCNRender tôi.

//... 
renderer.render(atTime: globeTime, viewport: viewport, 
       commandBuffer: commandBuffer, 
       passDescriptor: renderPassDescriptor) 

Điều này giải quyết được vấn đề của tôi một cách hoàn hảo.

Các vấn đề liên quan