1"use strict";(globalThis.webpackChunkvrgs_docs_v_3_1=globalThis.webpackChunkvrgs_docs_v_3_1||[]).push([[13196],{96395(t,e,n){n.r(e),n.d(e,{assets:()=>h,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"tutorial/quick-tips/qt070-flight-paths","title":"Flight paths from points of interest","description":"Mark the places on the outcrop you want to show, press Auto Generate, and VRGS works out the camera positions for a whole fly-through.","source":"@site/docs/tutorial/quick-tips/qt070-flight-paths.md","sourceDirName":"tutorial/quick-tips","slug":"/tutorial/quick-tips/qt070-flight-paths","permalink":"/docs/next/tutorial/quick-tips/qt070-flight-paths","draft":false,"unlisted":false,"editUrl":"https://github.com/vrgeoscience/vrgs_docs_v3/tree/master/docs/tutorial/quick-tips/qt070-flight-paths.md","tags":[],"version":"current","sidebarPosition":7,"frontMatter":{"id":"qt070-flight-paths","title":"Flight paths from points of interest","description":"Mark the places on the outcrop you want to show, press Auto Generate, and VRGS works out the camera positions for a whole fly-through.","keywords":["flight path","point of interest","POI","auto generate","fly-through","camera animation","movie"],"sidebar_position":7},"sidebar":"docs","previous":{"title":"Creating attributes","permalink":"/docs/next/tutorial/quick-tips/qt060-attributes"},"next":{"title":"Hardware Requirements","permalink":"/docs/next/general/setup-system/hardware-requirements"}}');var s=n(74848),r=n(28453);const i={id:"qt070-flight-paths",title:"Flight paths from points of interest",description:"Mark the places on the outcrop you want to show, press Auto Generate, and VRGS works out the camera positions for a whole fly-through.",keywords:["flight path","point of interest","POI","auto generate","fly-through","camera animation","movie"],sidebar_position:7},a="Flight paths from points of interest",h={},c=[];function l(t){const e={a:"a",admonition:"admonition",em:"em",h1:"h1",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"flight-paths-from-points-of-interest",children:"Flight paths from points of interest"})}),"\n","\n",(0,s.jsxs)(e.p,{children:["Building a fly-through used to mean flying the camera to every shot in turn and\npressing ",(0,s.jsx)(e.strong,{children:"Add View"}),". You can still do that \u2014 but you no longer have to."]}),"\n",(0,s.jsxs)(e.p,{children:["Instead, mark the places on the outcrop you want the tour to show. On the\n",(0,s.jsx)(e.strong,{children:"Flight Path"})," ribbon tab choose ",(0,s.jsx)(e.strong,{children:"Add POI"})," and click the rock; each click drops\na ",(0,s.jsx)(e.strong,{children:"point of interest"}),". Press ",(0,s.jsx)(e.strong,{children:"Esc"})," when you have placed them all, then press\n",(0,s.jsx)(e.strong,{children:"Auto Generate"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["The important part is what a point of interest ",(0,s.jsx)(e.em,{children:"is"}),". It is not a camera position \u2014\nit is the ",(0,s.jsx)(e.strong,{children:"subject"}),". VRGS works out where to stand the camera to see it, which\nway to face, and how long to take. It fits the overall orientation of the face,\nbends the standoff towards each point's own surface so the camera follows bays and\nnoses rather than cutting across them, and checks the line of sight against the\nreal geometry instead of putting the camera inside the rock."]}),"\n",(0,s.jsxs)(e.p,{children:["Set a point's ",(0,s.jsx)(e.strong,{children:"Type"})," to change what happens when the tour reaches it \u2014\n",(0,s.jsx)(e.strong,{children:"Look At"})," to stand off and face it, ",(0,s.jsx)(e.strong,{children:"Rotate Around"})," to circle it, or\n",(0,s.jsx)(e.strong,{children:"Traverse Anchor"})," to steer a face-on traverse without stopping there."]}),"\n",(0,s.jsx)(e.p,{children:"Two commands are worth running straight afterwards:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Check Path"})," walks the whole flight and finds anywhere the camera passes\nthrough the outcrop \u2014 the ",(0,s.jsx)(e.em,{children:"curve"}),", not just the keyframes, because a spline\nbetween two clear keyframes can still bulge through a buttress. It shows you the\nproblem, then offers to nudge the surrounding viewpoints clear."]}),"\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Constant Speed"}
1)," re-paces the path from the distance actually flown, so the\ncamera stops crawling through short segments and rocketing through long ones.\nThe total duration does not change."]}),"\n"]}),"\n",(0,s.jsx)(e.admonition,{title:"Generate first, then adjust",type:"tip",children:(0,s.jsxs)(e.p,{children:["Generated keyframes are ordinary viewpoints. Treat Auto Generate as a first pass:\ngenerate, then drag, reorder and re-time whatever needs it. Bear in mind that\nrunning it again ",(0,s.jsx)(e.strong,{children:"replaces"})," the keyframes \u2014 the dialog warns you when it can see\nedits you have made."]})}),"\n",(0,s.jsx)(e.admonition,{title:"Which renderer",type:"note",children:(0,s.jsxs)(e.p,{children:["Placing points of interest, ",(0,s.jsx)(e.strong,{children:"Auto Generate"})," and ",(0,s.jsx)(e.strong,{children:"Constant Speed"})," work in both\nrenderers. ",(0,s.jsx)(e.strong,{children:"Check Path"})," and the ",(0,s.jsx)(e.em,{children:"Keep the camera out of the outcrop"})," tick inside\nAuto Generate need the ",(0,s.jsx)(e.strong,{children:"Vulkan"})," view."]})}),"\n",(0,s.jsxs)(e.p,{children:["Full detail \u2014 every setting in the dialog, the three patterns, the property table\nfor a point of interest, and what to do when a path still clips the rock \u2014 is in\nthe ",(0,s.jsx)(e.a,{href:"/docs/next/general/viewing-collaboration/flight-path-user-guide#points-of-interest",children:"Flight Path User Guide"}),"."]})]})}function d(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},28453(t,e,n){n.d(e,{R:()=>i,x:()=>a});var o=n(96540);const s={},r=o.createContext(s);function i(t){const e=o.useContext(r);return o.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.