Scene翻译成中文是场景的意思:
/** * Update and render the scene. It is usually not necessary to call this function * directly because {@link CesiumWidget} or {@link Viewer} do it automatically. * @param {JulianDate} [time] The simulation time at which to render. */ Scene.prototype.render = function (time) { /** * * Pre passes update. Execute any pass invariant code that should run before the passes here. * */ this._preUpdate.raiseEvent(this, time); var frameState = this._frameState; frameState.newFrame = false; if (!defined(time)) { time = JulianDate.now(); } // Determine if shouldRender var cameraChanged = this._view.checkForCameraUpdates(this); var shouldRender = !this.requestRenderMode || this._renderRequested || cameraChanged || this._logDepthBufferDirty || this._hdrDirty || this.mode === SceneMode.MORPHING; if ( !shouldRender && defined(this.maximumRenderTimeChange) && defined(this._lastRenderTime) ) { var difference = Math.abs( JulianDate.secondsDifference(this._lastRenderTime, time) ); shouldRender = shouldRender || difference > this.maximumRenderTimeChange; } if (shouldRender) { this._lastRenderTime = JulianDate.clone(time, this._lastRenderTime); this._renderRequested = false; this._logDepthBufferDirty = false; this._hdrDirty = false; var frameNumber = CesiumMath.incrementWrap( frameState.frameNumber, 15000000.0, 1.0 ); updateFrameNumber(this, frameNumber, time); frameState.newFrame = true; } tryAndCatchError(this, prePassesUpdate); /** * * Passes update. Add any passes here * */ if (this.primitives.show) { tryAndCatchError(this, updateMostDetailedRayPicks); tryAndCatchError(this, updatePreloadPass); tryAndCatchError(this, updatePreloadFlightPass); if (!shouldRender) { tryAndCatchError(this, updateRequestRenderModeDeferCheckPass); } } this._postUpdate.raiseEvent(this, time); if (shouldRender) { this._preRender.raiseEvent(this, time); frameState.creditDisplay.beginFrame(); tryAndCatchError(this, render); } /** * * Post passes update. Execute any pass invariant code that should run after the passes here. * */ updateDebugShowFramesPerSecond(this, shouldRender); tryAndCatchError(this, postPassesUpdate); // Often used to trigger events (so don't want in trycatch) that the user might be subscribed to. Things like the tile load events, ready promises, etc. // We don't want those events to resolve during the render loop because the events might add new primitives callAfterRenderFunctions(this); if (shouldRender) { this._postRender.raiseEvent(this, time); frameState.creditDisplay.endFrame(); } };
看完是不是一头雾水。。渲染管线里面那么多步骤去哪了?传值在哪里?输出结果在哪里?怎么控制场景的投影转换到view?