Having been around Falcon a long time, I think I can safely say, this is not the first shooting star I’ve seen nor will it be the last.
not dead, just really really busy on other projects that pay bills. Updates are coming…
Having been around Falcon a long time, I think I can safely say, this is not the first shooting star I’ve seen nor will it be the last.
not dead, just really really busy on other projects that pay bills. Updates are coming…
Thanks reiser, I read a paper you posted and also searched for another articles about 3Dtextures, volume rendering, etc…
They were still hard for me to understand(I could imagine 2D texture slice but what is 3D texture?) the idea but really interesting.
Think of a 3d texture as a 2d texture with “layers” like you see in photoshop or the like. X,Y defines the pixel colors, Z defines the depth through the layers (usually 16, or 32 layers).
Or… Record your own!! Make a TE with some SAMs and go dodging!
Clouds in BOS etc are volumetric. They are not sprites but 3d textures. They don’t rotate because they have a 3d matrix that doesn’t need to be rotated towards the camera like billboards do (think grass, vegetation, 2d clouds). They draw based on volume which has 3d coordinates.
A kin to:
I have managed to install and run Peregrine on laptop with windows 10 and must say that overall design of this new Editor looks indeed very interesting and promising.
Thank you! You’re tile work inspired this whole endeavor as I wasn’t satisfied editing tiles tile by tile in Monster’s Editor, and CATE seemed like a whole lot of work just to lay a base.
- provider’s background maps and then overlays are with easy and fast switching, scrolling and zooming and all is true pleasure to use and work with.
- I assume, that finding and suggesting new global servers could allow to incorporate them in easy way (not that those already included were not plenty already).
- there is question of the zoom extend coordination with the size and scale of Falcon’s theaters, but assuming that those various global map servers can be used as a background maps to paint the terrains all look very promising.
- I am yet to play with existing terrain, however, ATM I noticed that loading screen calls for L2 and texture.bin only. I remember, that O2 file had some importance. Even though, I am not sure what information and data O2 contained, perhaps it needs to be looked into.
I assume the O2 is located where the L2 is… Looking at the source for the plugin, I use the same folder and filename - the extension.
Indeed “provider’s” can be loaded at runtime as well, expanding the list of available providers.
Zoom extend coordination already exists so long as theaters follow a rule. 64x64 Theaters = 10x10 degree arcs = 1km per tile. 128 is twice that = 1km per tile. Then, by using the Theater.MAP file, I can specify the bounds based on a lat/long center coordinate. This same bounds is used for Heightmap extraction from GMTED as well as calculating the extents for tiles and their lat/long positions in the world.
Currently, I’m working on not just viewing Texture.bin / Theater.L2(O2) but editing those as well as we have discussed in this thread. Indeed promising times ahead and with the plugin itself being open source, I’m sure we can keep adding features and things that are needed via vote from the community.
does it support 128 segment theatres?
I did just very fast test (did not setup anything)…I only opened my 128 seg theater and it seems to be messed up - “interlaced” various parts:
Currently only supports 64 size terrain, 4 bytes. I’ll make it so it detects 128 or 64 and it should solve that issue.
I’ve updated the zipfile linked to in post #1 with a new version that bypasses SQLite caching (for now). Please test this version out and see if that solves your AccessViolationException issues.
with the new one:
2015-12-28 16:35:03,038 - System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'Peregrine.UI.MapView' that matches the specified binding constraints threw an exception. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at Peregrine.Core.Singleton`1.get_Instance() at Peregrine.UI.MapView..ctor() in C:\Users\aeon\Projects\Peregrine\Peregrine\Peregrine.UI\Map\MapView.xaml.cs:line 47 --- End of inner exception stack trace --- at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2015-12-28 16:35:04,671 - System.NullReferenceException: Object reference not set to an instance of an object. at Peregrine.MainWindow.ShowPopup(String Message) in C:\Users\aeon\Projects\Peregrine\Peregrine\Shell\MainWindow.xaml.cs:line 47 at Peregrine.MainWindow.Current_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e) in C:\Users\aeon\Projects\Peregrine\Peregrine\Shell\MainWindow.xaml.cs:line 86 at System.Windows.Threading.Dispatcher.CatchException(Exception e) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2015-12-28 16:36:57,637 - System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'Peregrine.UI.MapView' that matches the specified binding constraints threw an exception. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at Peregrine.Core.Singleton`1.get_Instance() at Peregrine.UI.MapView..ctor() in C:\Users\aeon\Projects\Peregrine\Peregrine\Peregrine.UI\Map\MapView.xaml.cs:line 47 --- End of inner exception stack trace --- at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 2015-12-28 16:36:57,665 - System.NullReferenceException: Object reference not set to an instance of an object. at Peregrine.MainWindow.ShowPopup(String Message) in C:\Users\aeon\Projects\Peregrine\Peregrine\Shell\MainWindow.xaml.cs:line 47 at Peregrine.MainWindow.Current_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e) in C:\Users\aeon\Projects\Peregrine\Peregrine\Shell\MainWindow.xaml.cs:line 86 at System.Windows.Threading.Dispatcher.CatchException(Exception e) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Thanks,
The issue here is trying to load SQLite. Peregrine is a 64-bit application only, so if you are on 32-bit windows, Peregrine won’t work. It requires more than 4gb of ram. Also, if you are running windows xp, it also won’t work. Windows 7 is the minimum system os. I’ll see about working through the SQLite problems and report back.
Also note that while I try to handle exceptions in the Debug.log, there may be cases where it slips through and crashes the application.
Running with admin privledges helps but not always.
Also note that if you play with the bms plugin, be prepared to see 4+GB ram usage. Optimizations will come after the editing tools are done.