Elvas Tower: Dorset coast v6 - Severe trees on tracks - Elvas Tower

Jump to content

  • 10 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Dorset coast v6 - Severe trees on tracks Rate Topic: -----

#11 User is offline   Csantucci 

  • Member, Board of Directors
  • Group: Status: Elite Member
  • Posts: 7,009
  • Joined: 31-December 11
  • Gender:Male
  • Country:

Posted 04 December 2015 - 05:59 AM

Here

you can find two test .exe files and a .dll file to replace the original ones in release x.3366 .
In order to have the tree remove function to work, in the route's .trk file a line
	ORTSUserPreferenceForestClearDistance ( 2 )

has to be added. The parameter value is the clear distance between the center of the track and the side of the trees (so smaller trees can have a trunk that can be nearer to the tracks than bigger trees).
As the parameter value is user selectable, everyone can find the best match accordingly to his preferences and also accordingly to the route (every route can have a different value).
The algorithm is not perfect; it is now complete in case of forests extending across tile boundaries.
It must also be very clear that such a generic algorithm cannot replace the fine-tuning that can be achieved by route-editing.
The good thing is that the algorithm works not only with forests that are laid down adjacent to the tracks, but also with forests that are laid down "above" the tracks (half at one side of the track, half at the other side).
Before considering committing it would be nice if this could be tested (also in terms of lost FPS) by people suffering from this problem.
It can still happen that the watchdog lets the program return to the menu due to high CPU load when new tiles are loaded.

The algorithm used is the one jtang had developed, but not made operating in release 1491.

5/12/15 New release that should avoid the crash mentioned in the post below
6/12/15New release with bug correction and reduction of CPU load. Still work in progress. Replaces files of x.3356
6/12/15 22:30New release with apparently significant reduction of CPU load. To be inserted in OR x.3360.
7/12/15 New tentative release with the aim to delete the few remaining trees on tracks. To be inserted in OR x.3360 or OR x.3361 or OR x.3362
9/2/15 Release that should solve the problem of the few remaining trees on tracks. To be inserted in OR x.3366
11/12/15 Committed in x.3368, so patched files removed here.

#12 User is offline   Coolhand101 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 998
  • Joined: 13-June 15
  • Gender:Male
  • Simulator:MSTS
  • Country:

Posted 04 December 2015 - 06:12 AM

Many many thanks for this patch. I won't have time to test until sunday. Hopefully some positive results by then!

Thanks

#13 User is offline   R H Steele 

  • Executive Vice President
  • PipPipPipPipPipPipPipPipPip
  • Group: ET Admin
  • Posts: 3,445
  • Joined: 14-March 13
  • Gender:Male
  • Location:known universe
  • Simulator:Open Rails
  • Country:

Posted 04 December 2015 - 01:53 PM

Carlo,
downloaded the test .exe and the dll and applied to X3337. Added the ORTSForestClearDistance line to the .trk file as instructed.
Started the test using the Feather River Route - WP3Sub - which has a quite a few trees in tracks. Loading hung about 80% (approximate using the loading bar as visual ref)
and got this error in log - also attached. Will try with other routes.

Everything loads properly and runs in X3328

Route - WP3 Sub Activity: Overland Mail West


Warning: System.IO.FileLoadException: {TileX:-12899 TileZ:14307 X:-999.164 Y:1357.99 Z:-608.53} scenery object 50 failed to load ---> System.ArgumentNullException: Value cannot be null.
Parameter name: collection
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection)
at ORTS.Viewer3D.ForestPrimitive.CalculateTrees(TileManager tiles, ForestObj forest, WorldPosition position, Single& objectRadius)
at ORTS.Viewer3D.ForestPrimitive..ctor(Viewer viewer, ForestObj forest, WorldPosition position, Single maximumCenterlineOffset)
at ORTS.Viewer3D.ForestViewer..ctor(Viewer viewer, ForestObj forest, WorldPosition position)
at ORTS.Viewer3D.WorldFile..ctor(Viewer viewer, Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.ORTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String format, Object[] args)
at System.Diagnostics.TraceInternal.TraceEvent(TraceEventType eventType, Int32 id, String format, Object[] args)
at System.Diagnostics.Trace.TraceWarning(String format, Object[] args)
at ORTS.ORTraceListener.WriteLine(Object o)
at System.Diagnostics.TraceInternal.WriteLine(Object value)
at System.Diagnostics.Trace.WriteLine(Object value)
at ORTS.Viewer3D.WorldFile..ctor(Viewer viewer, Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.Viewer3D.SceneryDrawer.LoadWorldFile(Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.Viewer3D.SceneryDrawer.Load()
at ORTS.Viewer3D.World.Load()
at ORTS.Viewer3D.Viewer.Load()
at ORTS.Viewer3D.Viewer.Initialize()
at ORTS.Viewer3D.Viewer..ctor(Simulator simulator, Game game)
at ORTS.Processes.GameStateRunActivity.Start(UserSettings settings, String acttype, String[] args)
at ORTS.Processes.GameStateRunActivity.<>c__DisplayClass8.<Load>b__3()
at ORTS.Processes.GameStateRunActivity.Load()
at ORTS.Processes.LoaderProcess.Load()
at ORTS.Processes.LoaderProcess.DoLoad()
at ORTS.Processes.LoaderProcess.LoaderThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()


SSSSSSSSSSSSSSSSSSSSSS

Warning: System.IO.FileLoadException: {TileX:-12899 TileZ:14307 X:-459.282 Y:1346.59 Z:-373.44} scenery object 954 failed to load ---> System.ArgumentNullException: Value cannot be null.
Parameter name: collection
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection)
at ORTS.Viewer3D.ForestPrimitive.CalculateTrees(TileManager tiles, ForestObj forest, WorldPosition position, Single& objectRadius)
at ORTS.Viewer3D.ForestPrimitive..ctor(Viewer viewer, ForestObj forest, WorldPosition position, Single maximumCenterlineOffset)
at ORTS.Viewer3D.ForestViewer..ctor(Viewer viewer, ForestObj forest, WorldPosition position)
at ORTS.Viewer3D.WorldFile..ctor(Viewer viewer, Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.ORTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String format, Object[] args)
at System.Diagnostics.TraceInternal.TraceEvent(TraceEventType eventType, Int32 id, String format, Object[] args)
at System.Diagnostics.Trace.TraceWarning(String format, Object[] args)
at ORTS.ORTraceListener.WriteLine(Object o)
at System.Diagnostics.TraceInternal.WriteLine(Object value)
at System.Diagnostics.Trace.WriteLine(Object value)
at ORTS.Viewer3D.WorldFile..ctor(Viewer viewer, Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.Viewer3D.SceneryDrawer.LoadWorldFile(Int32 tileX, Int32 tileZ, Boolean visible)
at ORTS.Viewer3D.SceneryDrawer.Load()
at ORTS.Viewer3D.World.Load()
at ORTS.Viewer3D.Viewer.Load()
at ORTS.Viewer3D.Viewer.Initialize()
at ORTS.Viewer3D.Viewer..ctor(Simulator simulator, Game game)
at ORTS.Processes.GameStateRunActivity.Start(UserSettings settings, String acttype, String[] args)
at ORTS.Processes.GameStateRunActivity.<>c__DisplayClass8.<Load>b__3()
at ORTS.Processes.GameStateRunActivity.Load()
at ORTS.Processes.LoaderProcess.Load()
at ORTS.Processes.LoaderProcess.DoLoad()
at ORTS.Processes.LoaderProcess.LoaderThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
etc.....see log

Attached File(s)



#14 User is offline   jamesc25313 

  • Hostler
  • Group: Status: Active Member
  • Posts: 91
  • Joined: 28-July 12
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 04 December 2015 - 04:52 PM

Sounds a lot like the idea I had almost seven months ago over at the train sim forums.

Of course there are slight differences, I cant help but to notice that what has been implemented and what I suggested some months ago are strikingly similar!

Quote

It would be nice if it were coded in that no matter if you place trees on the actual tracks, OR will ignore and place trees either at a predefined distance away from the tracks, or a hard coded (3m?) distance. You could then set the route to ignore trees at a specified distance from the track, lets say 5m and it will start the forest region 5m away from the track automatically. Any trees accidentally place in the RE that go over this 5m threshold you've set will be ignored and not rendered. Maybe a text file place in the route folder that OR looks for to see if the predefined distance exists if not it will follow the fall back hard coded distance of 3m or whatever.


Thats pretty much whats going on here. Two people very well could have had the same idea, but if you have a shred of honesty and were influenced by my idea, please give credit where credit is due. All Im asking.

#15 User is offline   R H Steele 

  • Executive Vice President
  • PipPipPipPipPipPipPipPipPip
  • Group: ET Admin
  • Posts: 3,445
  • Joined: 14-March 13
  • Gender:Male
  • Location:known universe
  • Simulator:Open Rails
  • Country:

Posted 04 December 2015 - 07:45 PM

:thumbdown3: (above post #14)

#16 User is offline   Coolhand101 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 998
  • Joined: 13-June 15
  • Gender:Male
  • Simulator:MSTS
  • Country:

Posted 04 December 2015 - 11:46 PM

View Postjamesc25313, on 04 December 2015 - 04:52 PM, said:

Sounds a lot like the idea I had almost seven months ago over at the train sim forums.

Of course there are slight differences, I cant help but to notice that what has been implemented and what I suggested some months ago are strikingly similar!



Thats pretty much whats going on here. Two people very well could have had the same idea, but if you have a shred of honesty and were influenced by my idea, please give credit where credit is due. All Im asking.



Really? This code was developed long before your 'idea'. There was an option to avoid "trees on track" in the OR option tab, but it took out more scenery other than trees. The developer is looking at this code again.

Please, these developers are using their own free time to make OR better. Do not bring that attitude here that i have seen on other train sim sites. Infact, i think your comment is very arrogant and accusing. Assuming negativity in people because your ideas were similar. Its a train sim site, of course the same ideas are going to occur.

I thought member Disc was reading my mind as he had exactly the same ideas as me THREE times lol.

There is a saying that should stick in the foremost of your mind " great minds think alike " Please use that as a positive and not a negative!

#17 User is offline   Csantucci 

  • Member, Board of Directors
  • Group: Status: Elite Member
  • Posts: 7,009
  • Joined: 31-December 11
  • Gender:Male
  • Country:

Posted 05 December 2015 - 12:33 AM

View Postjamesc25313, on 04 December 2015 - 04:52 PM, said:

Sounds a lot like the idea I had almost seven months ago over at the train sim forums.

Of course there are slight differences, I cant help but to notice that what has been implemented and what I suggested some months ago are strikingly similar!



Thats pretty much whats going on here. Two people very well could have had the same idea, but if you have a shred of honesty and were influenced by my idea, please give credit where credit is due. All Im asking.


jamesc25313,
first of all, it looks like you haven't got the spirit there is here in the ORTS development and testing world. If the spirit were the one you seem to have, I would start developing elsewere. I don't want to have to also credit Turing as inventor of the computer everytime I develop something.
Second and to be more specific, (and Coolhand101 already replied on this), first in post #7, and then in post #11 with this sentence
"The algorithm used is the one jtang had developed, but not made operating in release 1491"
I mentioned the author and the source of the original code. If you had lost some time in documenting yourself before writing, You'd have seen that such release is dated the 15th of march, 2013, more than two years before your post.
Third, I wasn't aware of your post, as since a couple of years I don't have any more time to follow also the trainsim forum (you will scarcely find recently posts by myself there).
So, who should the one asking the other if he had a shred of honesty and was influenced by a preceding idea?
If I were as formal as you are, I'd require your apologies. As I'm not as such, I simply won't loose further time on this absurd querelle and won't write further words on this.

Waht is more important, is to understand why Gerry had the crash.

#18 User is offline   Csantucci 

  • Member, Board of Directors
  • Group: Status: Elite Member
  • Posts: 7,009
  • Joined: 31-December 11
  • Gender:Male
  • Country:

Posted 05 December 2015 - 01:42 AM

In the first post I have attached a modified version of the .exe files that should avoid Gerry's crash.

In the next days I hope to have a small improvement in frame rate and in the algorithm capabilities.

#19 User is offline   copperpen 

  • Executive Vice President
  • Group: Status: Elite Member
  • Posts: 3,144
  • Joined: 08-August 05
  • Gender:Male
  • Simulator:MSTS & OR
  • Country:

Posted 05 December 2015 - 03:03 AM

Carlo,
I tried your first set of files yesterday on the Dorset Coast v6 with a similar result to the one from Gerry, but in my case, I shut the process down after 10 minutes. I downloaded your new set this morning and had another go. This time there was no crash report, the log just ended with nothing apart from the normal type of reports about nodes etc. This time however, the Activityrunner was shut down due to inactivity.

#20 User is offline   copperpen 

  • Executive Vice President
  • Group: Status: Elite Member
  • Posts: 3,144
  • Joined: 08-August 05
  • Gender:Male
  • Simulator:MSTS & OR
  • Country:

Posted 05 December 2015 - 04:21 AM

After more testing of both versions on the Dorset Coast route, I have the following observations.

1. Neither version seems to work if a start point other than an end is selected.

2. Version 1 will allow more running time than version 2. This is because version 1 leaves the scenery intact for a longer distance.

3. In both versions, when the scenery cutoff point is reached the Activity Runner ceases to work and is shut down by windows.

4. For the distance travelled this does remove trees from the track and lessens the number of overhanging trees.

5. No problem with frame rates but at one point using version 1 I did get a solid freeze for about a second which may have been caused by the loader process trying to load the scenery ahead that was no longer there. By scenery I mean everything including track.

  • 10 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users