-
Posts
143 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Articles
Docs
Gallery
Posts posted by PaulWeston
-
-
I am also getting this error when trying to run a build of T3D 3.8 using Oculus SDK 0.5:
Oculus VR Device Init: Could not enumerate a HMD device. Simulating a HMD. First-chance exception at 0x11022206 (Spear_Dev_DEBUG DLL.dll) in Spear_Dev_DEBUG.exe: 0xC0000005: Access violation reading location 0x00000040. Unhandled exception at 0x11022206 (Spear_Dev_DEBUG DLL.dll) in Spear_Dev_DEBUG.exe: 0xC0000005: Access violation reading location 0x00000040.
Causes game to crash right away.
Compile was flawless, not sure why this is happening.
Used to have Oculus working fine in 3.6.3 (with older 0.1.5 Oculus SDK) before all the changes for DK2.
But I would like to move my code up to 3.8, for many reasons especially any updated x64 stuff.
Ideas anyone?
-
Hi all,
I've been meaning to post this for a while, just never got around to it.
Using T3D 3.6.3 with AFX - Visual Studio 2010 Express - Windows SDK 7.1
When I compile to 32 bit, it's fine, game loads no problem. But our game requires the 64 bit because we re loading so much that we blow the 2 gig memory limit for 32 bit...
So, managed to compile to 64 bit a while back and it has been awesome for the game - can load as much as we want now. However, when I first went to launch it the game would crash soon after the splash screen with no error. Tried a few things and eventually found that setting the Compatibility Mode to "Windows 7" fixed the problem and the game has been running fine ever since.
But even though I found a workaround, I do not think this is ideal.
Have not read anything similar on here, so am wondering if it is my setup somehow?
What is the standard platform you all are building T3D 64 bit on? Should I use a different version of Visual Studio, or perhaps point to a different SDK? I had to install the Windows 7.1 SDK to restore my 64 bit compilers after installing Visual Studio 2010, the Express version apparently toasts them. So perhaps using the 7.1 SDK causes this somehow. Or it's the 2010 compilers maybe?
Suggestions anyone?
Thanks
-
I'm using the code from your GuiOnObject GitHub repo...
Cool that it's still being tweaked in development - what has changed between that version and the one I have?
I will keep looking at the Oculus issue - it looks like it just has something to do with when the raycast is firing, like it is not firing when in Oculus mode. Perhaps by looking at how Stefan did it in the Awesomium kit will point me in the right direction.
Thanks!
-
I got this working finally after just a bit more tinkering...
Works great, thanks much for the help!
One thing I am curious about though - when I pop into Oculus Rift mode it does not detect the interaction, I get no mouse cursor or any control, clicking just fires my weapon. My crosshair just stays normal as I pan across the Gui, like it doesn't recognize it.
Anything you can think of that I have to tweak to make this work? I know it is possible to have dual-cursor for the Rift, as we see it in the Awesomium kit we have :)
-
The ship is made up of mostly TSStatic objects, but yes there is a fair amount of StaticShape datablocked shapes for all the stuff that has to work..
I agree T3D seems 'uniformly slow' lol, you really think it would run faster than it does. But at least it is malleable and we've been able to tweak it enough to make this workable.
Anyhow, I'm happy to share any data that may help with engine development, Not sure why the output file tabs are messed up in the latter part of that file, will try to get another profile dump and post it tomorrow.
Cheers
P
-
Hmm, that's interesting for sure...
The scene is full of zones, so maybe part of having zones in there causes it to run through every possible occlusion method, including terrain? Agreed that I do not have terrain in there at all so why would that need to be checked, at least in this mission - I do have a mission with a Cestus III terrain and the Vasquez rocks where you can go fight some Gorn, but that wasn't what I used to do the profiling.
As for the String stuff, I'm not sure... I do a lot of command to client and command to server back-and-forth in my TorqueScript, doesn't that use tagged strings and such flying back and forth? Other than that I don't know what else I'm doing that is out of the ordinary.
-
IsOccludedByTerrain is in scene/culling/sceneCullingState.cpp, in the function:
U32 SceneCullingState::cullObjects
And the String bit appears to be from core/util/str.cpp:
String::String()
{
PROFILE_SCOPE(String_default_constructor);
_string = StringData::Empty();
}
They are part of the stock engine code I'm pretty sure, I didn't add them, is there a reason we should not be seeing those?
-
Yep that did it :)
Have interaction being detected now! Although it does not seem to be actioning when I click... That doMouseClick function i see in the default bind, is that something that is in the engine or that I have to add in script somewhere?
Close!
-
Oh oops, you mean I should just straight TSStatic this sucker instead of going with the datablock StaticShape? That's no problem, they don't have to be StaticShapes, I can easily swap them out for TSStatics and see if that helps.
Should have noticed that in the dynamic cast that it was looking for TSStatic when I have StaticShapes I'm trying to do this with. Duh!
Thanks, will try and see if that does it.
-
Thanks, just double-checked the merge and I have all your code in there correctly.
I see the LOS mask, you added StaticShapeObjectType, I had done that so am not sure what I'm missing...
The object I'm placing is a StaticShape, has a datablock, it comes up properly showing the gui I want, I just have no mouse control and the cursor/reticle doesn't change or anything.
I'm running the latest 3.7 AFX Full build from GitHub as my base, all that stuff works great, anything that AFX could be doing that would be disabling this somehow perhaps? I can't think of anything else, as I have set it all up identically to how you had it in the guionobject github repo.
Thanks!
-
Wow, cool, have never seen this before :)
At a glance, I don't see anything particular that is caught in a loop or anything. But maybe you can tell me a bit more about what it going on.
Some notes:
- I put the zones and portals back in, because now with 64-Bit they no longer seem to add to the crashing problem I was having before... I do still have some issues with the portals, they seem to be revealing more than I think they should, when you look at that direction even if you are looking through walls. But with zones back in I gained a lot of FPS on my dual-core system.
- I also set it up so when you are in the saucer section, it completely removes the lower hull decks, and vice-versa. When you move from one to the other, it plays a short turbolift video animation while it takes the 10 seconds or so to load in all the decks again. So when the turbolift door opens, the deck is loaded there for you. This also gained a lot of FPS.
So now on my dual-core system with only 4 gb ram, I can average 15-25 FPS in most areas (drops to 5-10 when loading stuff, then comes back up). With that, the game becomes viable even on older systems.
I did 20 seconds or so of profiling for this. Have attached the file to this post.
Thanks!
P
-
@Azaezel:
Perhaps I missed something in the engine code merge...
If I put a little echo comment in my default.bind, within the mousefire command, under the if statement for gui interact, and it never displays the echo in the console.
So... My gui interact stuff is not functioning or something.
I will look again at the merge, but I really feel I got it right. Is there something perhaps I should be looking at specifically in the engine code to make sure that clicking portion works?
Thanks
P
-
Did some more testing with this...
If I set the matchvideosize to 1, then it correctly sets the extent of the video control to be the dimensions of the OGV file, but the video itself seems to be bigger.
It's as if the texture size on the object is set to a value smaller than the video, so you only see the center part of the video on the object and not the whole thing.
For example, if I make the video 320 by 240 the window will size to that correctly but will only show roughly 250 by 200. If I make the video 1024 by 768 the window will take up the whole screen which is fine, except the video again only seems to display about 800 by 600 of the video. I always lose the sides and top.
Rather than having to make videos with a hard coded black border of a couple hundred pixels, is there perhaps some way to play with the texture sizing so the whole video will show up?
Thanks
P
-
Sure, to get this working with fxGuiSnooper, you need a few things:
- A camera object (can be anything really, we use a transparent cube)
- A viewer object (set up with a mapped material to a GuiTextureCanvas)
- A GUI Control somewhere (we put one in the PlayGui) that will be mapped on to that viewer object... Within that Gui Control you should also have an fxGuiSnooper set up that points to the camera object
Then when the viewer object appears, it should be textured with that Gui Control, and the fxGuiSnooper nested inside that control should be active and should display the view from the camera object.
We got a bit more complicated than that, for example we have multiple cameras and our viewer cycles through them every 15 seconds, but with the basics above you should be able to get it working.
Let me know if I missed anything.
Cheers
P
My game-specific code below for reference:
******************************************** Playgui.gui: new GuiControl(FeedOneDlg) { position = "0 0"; extent = "1024 768"; minExtent = "8 8"; horizSizing = "center"; vertSizing = "center"; profile = "GuiOverlayProfile"; visible = "0"; active = "0"; tooltipProfile = "GuiToolTipProfile"; hovertime = "1000"; isContainer = "1"; hidden = "1"; canSave = "1"; canSaveDynamicFields = "1"; fixedAspectRatio = "0"; new fxGuiSnooper(FeedOneDlgObj) { cameraZRot = "0"; forceFOV = "0"; reflectPriority = "1"; renderStyle = "standard"; margin = "0 0 0 0"; padding = "0 0 0 0"; anchorTop = "1"; anchorBottom = "0"; anchorLeft = "1"; anchorRight = "0"; position = "15 5"; extent = "1000 760"; minExtent = "8 2"; horizSizing = "center"; vertSizing = "center"; profile = "GuiDefaultProfile"; visible = "1"; active = "1"; tooltipProfile = "GuiToolTipProfile"; hovertime = "1000"; isContainer = "1"; canSave = "1"; canSaveDynamicFields = "0"; ViewRotation = "0 0 0"; ViewOffset = "0 0 0"; FOV = "60"; SweepAmplitude = "0 0 45"; SweepTime = "25000 25000 25000"; AttachedObject = "Cam1"; OverlayBitmap = "0"; OverlayTile = "0"; OverlayColour = "0"; ColorOverlay = "1 1 1 0.5"; RedMask = "1"; GreenMask = "1"; BlueMask = "1"; }; }; ******************************************** materials.cs file in the folder with my viewer object (object filename FeedOneGui.dae, material name within is FeedOneGui): new GuiTextureCanvas( FeedOneCanvas ) { guiControl = "FeedOneDlg"; }; new Material(GuiFeedOneMat) { diffuseMap[0] = "$guiFeedOneCanvas"; emissive[0] = true; mapTo = "FeedOneGui"; }; ******************************************** Camera object to put in mission file: new StaticShape(cam1) { isAIControlled = "0"; dataBlock = "SecurityCameraInvisibleData"; position = "-240 63 120"; rotation = "1 0 0 15"; scale = "1 1 1"; isSTControl = "0"; canSave = "1"; canSaveDynamicFields = "1"; }; And the datablock for that camera (just an invisible object): datablock StaticShapeData(SecurityCameraInvisibleData) { // Basic Item properties shapeFile = "art/Camera/SpyCamNm.dts"; scale = "2 0.5 1"; mass = 2; friction = 1; elasticity = 0.3; emap = true; }; -
That would be great to know... Is that something I can do myself?
Maybe it's just that I have a lot of script stuff going on all the time, and that I am running on dual core with 4 gigs. I will know more tomorrow when I am at my colleague's using a 6-core 8 gb machine what the performance difference is.
Would be happy to provide everything for testing if need be. It would be big though - engine code is not bad of course but game folder is 1.4 gigs zipped, there is a lot of stuff :)
-
Running Windows 7 home premium 64-bit on all machines at home. At work it's windows 7 professional or enterprise or whatever. Only difference really is amount of ram, home machines have only 4 and work has 8. Home machines even all have after market video and rate between 5.9 and 7.1 in the performance index. Other new games are fine.
So ya its weird lol. But at least that fixes it.
As for the low FPS, my machine is actually the slowest in the house, kids got the quad cores and mine is just an old dual core refurb. Good video card though. But i always get low FPS.
Its kind of decieving though, its actually playable at that speed and is not as choppy as one would think.
What do you mean by profiling? I'm curious :) we are not open source but for you guys I could provide a build for r&d if you like.
-
The 64-Bit allows us to push past the 2 GB memory limit, and load in a ton of stuff.
Here is a cutaway with the hull removed, where you can see all the decks, doors, stairs, etc.
http://riversidefantasy.ca/screencaps/00-Cutaway.jpg
And also, it allows the Oculus Rift dual-rendering to stand a chance, without crashing like it would in 32-Bit:
http://riversidefantasy.ca/screencaps/31-RiftView.jpg
...Now we go to work finishing up all the deck furnishings and activating buttons and consoles... I want to build some interactive original series episodes where excerpts play on the view screen and then you have to go do certain things. We can beam down to planets too - we built Cestus III and also the Vasquez Rocks, and we have the Gorn as an AI you can have a punch fight with.
It's going to be a really great game when it's done... Free project for the masses, hopefully it will get us noticed or maybe we'll get a license from CBS/Paramount to develop it further. They were not interested when we first pitched it about 5 years ago, but we have a pretty good working prototype with this so who knows :)
Anyhow, like I said above, this would not have been possible without all the help from the Torque community over the years. I have learned so much here, and look forward to continuing to push the limits of what I feel is still pound-for-pound the best engine to make games with.
Thanks to all of you again
-
Hello everyone,
I can happily report that we now have a fully up-to-date 3.7 running in 64-Bit, with full AFX and advanced character kit integrated along with pathshape and guitexturecanvas/fxGuiSnooper. Also a few other little resource gems in there. It all works fantastic and I can't even make it crash if I try lol.
Here is some of the fun we are having with this exciting upgrade... These are just low-res caps for the web, final product will be sharper. Also, the FPS meter is low because I took these on my old test rig dual-core 4gb ram machine, and it's actually still totally playable :)
Thanks so much to everyone here who has helped us get this far, live long and prosper!
Cheers,
Paul
http://riversidefantasy.ca/screencaps/01-CaptainsChair.jpg
http://riversidefantasy.ca/screencaps/04-Saucer.jpg
http://riversidefantasy.ca/screencaps/05-SideView.jpg
http://riversidefantasy.ca/screencaps/07-ShuttleBayExterior.jpg
http://riversidefantasy.ca/screencaps/09-ShuttleElevator.jpg
http://riversidefantasy.ca/screencaps/10-ShuttleGarage.jpg
http://riversidefantasy.ca/screencaps/11-ImpulseEngineering.jpg
http://riversidefantasy.ca/screencaps/18-TheatreScreen.jpg
http://riversidefantasy.ca/screencaps/20-AirlockSuits.jpg
http://riversidefantasy.ca/screencaps/22-SpaceWalk.jpg
http://riversidefantasy.ca/screencaps/23-SwimmingPool.jpg
http://riversidefantasy.ca/screencaps/30-DanceHall.jpg
-
Teaser showing the whole ship loaded, with hull removed
Lovin' it :)
http://riversidefantasy.ca/screencaps/00-Cutaway.jpg
-
Hi all,
Been using TheoraTextureObject to put videos on objects, works great...
However, and this is true for theora video GUI controls in my menus as well, it seems as if it kind of zooms into the video somewhat. Like the video is larger than the object it is supposed to be mapping to. This results in clipping of a lot of the frame.
The videos were originally AVI, converted to OGV using Miro Video Converter. There were not many options to choose in terms of the end result, but they play fine as OGV files in VLC Player.
I have not seen anything in Torque about how one could scale the video or the resolution, are there perhaps specific sizes/resolutions/aspect ratios that this control needs the videos to be converted to in order to display properly?
Thanks!
-
That's awesome, thanks!
-
Hi all,
Since I can't use Awesomium in a 64-bit build, I am exploring ways to duplicate that functionality using existing code.
We had some Flash video clips playing on our Awesomium shapes, I thought I could achieve the same thing with TheoraTextureObject.
So, I created .OGV versions of all the clips, set up the materials as they should be for the objects, and I try to pop one into the game.
Each time, it just comes up with a blank black texture. No warning or anything, and not the ugly orange "No Material" error, so it looks like it's halfway there, but I never see any of the video clips.
Is there something I am missing with this? All of this is stock now in the engine, correct?
Object I want to place video on: MyWebStarfield.dae (has a material named "WebStarfield")
My materials file:
singleton TheoraTextureObject(MyWebStarfieldTextureNametex)
{
texTargetName = "MyWebStarfieldTextureName";
theoraFile = "scripts/web/video/star_voyager1.ogv";
};
singleton Material(WebStarfield_WebStarfield)
{
mapTo = "WebStarfield";
diffuseMap[0] = "#MyWebStarfieldTextureName";
emissive[0] = "1";
};
The OGV files I have are pretty decent quality, perhaps they are too big? But they are not much bigger than another OGV file I am successfully playing in a GUI on game startup using GuiTheoraControl.
Anyhow, is anyone successfully using TheoraTextureObject to play videos on objects in-game, on a 64-bit build of 3.7 RC?
Thanks!
-
I have this working in tandem with fxGuiSnooper, to show security camera feeds on an object.
Works flawlessly for that... However now that I am running 64-bit and can no longer use Awesomium, I am trying to move some of my GUIs onto objects to replace the Awesomium functionality.
I can get the GUIs to pop on there fine, just as they do with the fxGuiSnooper, but I do not have any mouse control on the GUIs. Is this normal? Anything I may be missing in the code that would enable that?
Thanks!
-
OMG would you believe that after fussing with this for 3 days pulling my hair out, on a whim I just set the exe compatiblity mode in Windows to be "Windows 7", and then everything goes back to working fine in 64 bit?
WTF, really Microsoft?
lol
Anyhow, I guess my runtime libraries or redistributable got messed up somehow or something, but forcing the compatibility to Windows 7 seems to fix it. No probs running all over the ship and stuff loading in and AI spawning, all good.
Phew, relief. But ya, how stupid is that?
Glad it's fixed at least, now back to work :) The 64 bit really is awesome.

just toying with torque3d and minecraft
in General
Posted
Very cool!
Details please :)