As for the skinning, NWN has some control over that, I'm not entirely sure (I haven't thoroughly read the code there). The GPU is capable of doing it, and the limitations on GPU skinning and NWN skinning are identical, so there's a chance NWN is offloading it to the GPU. However, jiggly meshes seem like they might be done in CPU (not sure exactly, since adding a vertex shader can break them, which usually suggests GPU). NWN doesn't seem to use vertex buffers in the GPU (the most significant reason for why it runs so slowly), which would mean that if it does GPU skinning, it's download the data every frame.
NWShader
#101
Posté 17 octobre 2010 - 02:40
As for the skinning, NWN has some control over that, I'm not entirely sure (I haven't thoroughly read the code there). The GPU is capable of doing it, and the limitations on GPU skinning and NWN skinning are identical, so there's a chance NWN is offloading it to the GPU. However, jiggly meshes seem like they might be done in CPU (not sure exactly, since adding a vertex shader can break them, which usually suggests GPU). NWN doesn't seem to use vertex buffers in the GPU (the most significant reason for why it runs so slowly), which would mean that if it does GPU skinning, it's download the data every frame.
#102
Posté 29 octobre 2010 - 04:48
"EXPORT void GLAPIENTRY PLATFORMNAME(glDeleteTextures)(GLsizei n, const GLuint *textures)"
in nwshader.cpp.
I think a delete of the recently created nwshader_texture needs to go in here (I do not see anyplace else it is deleted.
#103
Posté 30 octobre 2010 - 07:04
#104
Posté 30 octobre 2010 - 11:46
pkpeachykeen wrote...
I think you may be correct. I know the material is deleted, but the texture may not be deleted. Doing that easily may require making the texture map into a multi-index map as well, since the shader binding depends on names and the delete function uses indices.
I found this because I was working on a way to map the texture index back to the name. As a result I think I have at a rough cut at a fix. I will email it to you after I do some checking.
#105
Posté 31 octobre 2010 - 05:18
#106
Posté 31 octobre 2010 - 09:37
pkpeachykeen wrote...
You may want to take a look at the map used to store the materials, if you haven't already. With a slight tweak, the same class can be used as a map and keep track of the texture name/ID relationship from both sides. It may also be a chance to forcibly optimize textures, as the map can be checked for an already-loaded texture and simply return that ID, instead of loading a new one.
The map<int, ptr> is what I did. The texture id's seem to be pretty linear (only a few gaps). I'm wondering if the one of the dynamic array templates my be a good choice. We could set values to NULL for the entries that are skipped.
One of the reasons I was looking at this was to see if entire models (.mdl's) could be identified. I found that nwn calls glDrawElements in the same order that the nodes appear in the models hiarchy. In the red dragon model I placed a node called s.c_reddrg at the beginning of the node list and one called f.c_reddrg at the end. The net result is that nwshader could identify the start and finish of a model and operate on the entire model.
Interestingly the dragons wings (which are skinned) do not seem to go through glDrawElements.
I could see a couple of uses for this:
- Let the gpu's do the vertex animation instead of the PC.
- Have nwn process "bare bone" models (ones with very few vertexes, but all the bones) and let nwshader add the vertexes (the meat so to speak). You might be able to create some very complex models that nwn would not normally be able to handle.
#107
Posté 09 décembre 2010 - 12:26
#108
Posté 09 décembre 2010 - 04:46
I have two bugs left on the list to take care of, then some testing, and we can call it a stable release.
I expect at least one more patch; one if I can get the shader loading bugs and the GUI list bug, two if I can't. That patch (or the second one) will, if all goes according to plan, be a preliminary 0.9 (release candidate) version and be promoted to 1.0 after testing. Of course, that assumes these last bugs can be squashed, and I've been chasing them for a while now (narrowed it down to a very few parts of the code where they may be lurking).
Most of my time lately has been spent on the project that will come to replace NWShader (actually, it will also replace the inspiration for NWShader, MGE, and at least influence a number of similar projects). There will be no significant change to how shaders or the NWN module work, I'm basing the new core on what I've learned writing NWS.
That's coming along nicely, I had a functional demo for another game (till I decided to rip the code apart and clean it up) and am working on fixing some bugs in the core. I'm setting up some stuff to help make a NWN module quick and simple (hooking OpenGL is ridiculously complicated compared to DirectX, but I've done it once, so...).
As a multi-game system, we'll be seeing better stability (from, hopefully, more testers), some more features (I'm going to be a bit tight-lipped about those until I get working demos, in case they fail, but if they don't, the spelling of epic will change
Right now, I use Cg to compile the shaders and have some old and kinda messy NWShader code handling the textures , parameters and what-not. My new system is designed from the ground up as a core for this sort of app and, from all my tests so far, does it pretty well. It can set up and link textures with ease and handle a good bit of stuff that's kind of hacky in NWShader at the moment.
That will eventually replace NWShader (the NWS forums have already been redirected to the new forum). It will support NWN, NWN2, The Elder Scrolls Morrowind and Oblivion, at least (any other OGL/DX8/9/10 games are possibilities). NWN and Morrowind are tied for #1 on the support list, NWN2 is next, and I'm trying to get in contact with the Oblivion Graphics Extender developers to see if they'd like to use the core (#3).
To prep for all that, I've purchased hosting with Westhost, one of the best hosting companies around (and a friend of mine works there, so I can bug him to fix anything
Oh, and this all would be done, except for Minecraft and those meddling creepers.
Modifié par pkpeachykeen, 09 décembre 2010 - 04:52 .
#109
Posté 09 décembre 2010 - 11:22
#110
Posté 12 janvier 2011 - 03:29
#111
Posté 12 janvier 2011 - 06:48
It may be possible, depending on how NWN handles some of the data internally, to upgrade functions on the fly. I have a few theories for doing that; unfortunately, none of them fit into the current NWShader setup. Fortunately, they do fit into the updated framework, so as soon as I finish laying the foundation for that, I can test that. At the very least, I hope to cache draw calls and call them as an array or multi-vert call later on, which will help take advantage of GPU power.
#112
Posté 13 janvier 2011 - 02:01
#113
Posté 14 janvier 2011 - 01:53
I think I mentioned it before, but I've been spending most of my free time lately reworking the core of NWShader. It originally started as a single-purpose system designed for one thing, then I started adding stuff and it started falling apart. The Chronepsis versions were a partial rewrite that obviously had issues, so I've been taking it from the bottom up.
It's taking some time, obviously, but so far is much more stable and does things properly that NWS kind of hacked in. I have to put the final touches on the core and finish the NWN module, then that'll be coming out for testing (shaders and materials will stay compatible, other stuff will just be improved).
#114
Posté 14 janvier 2011 - 08:23
#115
Posté 05 juin 2011 - 08:30
I've downloaded - Chronepsis 0.2.2.3.rar and the Patch0230.rar.
I'm positive I installed them correctly but when I run it nothing changes everything looks the same.
I tried running the NwshaderGUI and I get message saying config not found and everything is unchecked. When I try to apply some of the features and load the game I just get a black screen inside the game (not menu) and I can only see my hotbars. I'm hoping if someone can help me out with this?
P.S - Using Chronepsis alone seems to work but everything is to blurry, I tried changing it and everything just unchecks itself and not able to save it.
Modifié par xidekeen, 05 juin 2011 - 08:42 .
#116
Posté 15 juin 2011 - 02:19
I'm having similar problems as xide; NWshader is hooking/running, but no shaders work. The camera hack works, and the fog setting works, but I get no shaders effects in-game like i used to. This is where the log starts showing errors:
19:20:14 :: Shader Factory: Loaded texture error.png on 08CA7FD8.
19:20:14 :: Shader Factory: Setup complete.
19:20:14 :: Set up DirectInput interface.
19:20:20 :: Cg: No vertex or fragment profiles found. Shaders may not function.
19:20:20 :: NWShader: Compiling shaders...
19:20:20 :: CG: Could not find valid techniques.
19:20:22 :: CG: Could not find valid techniques.
19:20:22 :: Shader Manager FS: Some shaders failed to load.
Any ideas as to what's going on from that?
#117
Posté 22 octobre 2011 - 06:26
will it be ever an update or bug fix available .....?
Looks the project is dead :\\
With my old ATI X1950XT the shaders run fine ...
But now with my newer ATI HD4850 and actual drivers - no shader work anymore ...
Its make no diff which shader i test - none work.
So if no bugfix coming it is mainly only usefull for older cards imho .....(sad)
Regards
R-TEAM
#118
Posté 24 novembre 2011 - 02:36
#119
Posté 27 novembre 2011 - 06:10
NWShader itself will not receive any more patches, but Voodoo/Frost is still being developed (how stable it is varies).
There are quite a few known issues with the last release of NWShader, some of which would take significant core work, hence the shift to the unified system and rewrite.
Until that is compete, I would recommend using the next-to-last release of NWShader, it was significantly more stable. You may also be interested in following Voodoo (can be found at https://github.com/p...en/VoodooShader ), as that is the replacement.
As far as the issues brought up in the last few posts:
@Ce1orn: That indicates that no available OpenGL profiles can be found by Cg on your hardware. It may be driver related, but there should always be a few available profiles. There are some significant issues with the recent nVidia drivers, particularly when it comes to their shader handling, but I'm not sure that's the cause. I assume drivers are up-to-date and such?
@R-TEAM: As noted, there will be no additional updates to NWS as such. What drivers are you running, what does the log note? I'm curious if it's related to Ce1orn's issues, or different.
@PC-48: IIRC, the shader list had at least one bug. Check to make sure they are in the config file, and if not, you may try manually adding them.
Again, as I mentioned, I'd recommend the next-to-last release as it is more stable, until Voodoo/Frost is complete. I'd put Frost at about 70% completeness compared to the last NWS, and significantly more stable.
#120
Posté 27 novembre 2011 - 07:47
#121
Posté 01 décembre 2011 - 02:06
#122
Posté 01 décembre 2011 - 07:43
PC-48 wrote...
Thank you for the response, so is the next-to-last release of NWShader Bahamut 2.14 or just Chronepsis 2.2.3 without the 2.3 patch applied?
Bahamut 2.14
#123
Posté 02 décembre 2011 - 07:31
@pkpeachykeen
have the latest ATI drivers installed.ATI HD4580.Win7 64bit.
(have 3 PCs Workstations running and doing Proffesional 3D art(Maya), so i am sure all drivers all time up-to-date - as i make money with it and dont need crashes after 5h work as example
nwshader log:
12:42:28 :: Logger created. 12:42:28 :: NWShader: Starting... 12:42:28 :: NWShader Chronepsis (v0.2.2.2) 12:42:28 :: Copyright (c) 2010 Sean Sube http://nwshader.sourceforge.net All original elements of the NWShader project are licensed under the terms of the GNU General Public License. Under no circumstances may any element of NWShader be used in any proprietary project. Please refer to the copy of the GPL distributed with NWShader for further information, or, if you did not receive a copy, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. For help, support, questions, comments, or complaints, please send emails to Sean Sube (pkpeachykeen) at cx029a@live.com, or use the message boards on the NWShader SourceForge page. 12:42:28 :: Config: Config file read. 12:42:28 :: GUI 12:42:28 :: Settings 12:42:28 :: TintWorld = false 12:42:28 :: DebugLevel = 0 12:42:28 :: Config: Reading shaders list. 12:42:28 :: Config: Error parsing shader. 12:42:28 :: Config: Done parsing config file. 12:42:28 :: NWShader was unable to load the language file for d. 12:42:28 :: NWShader: Started by process F:\\Games\\NeverwinterNights\\nwmain.exe. 12:42:28 :: NWShader: Attached to NWMain. NWShader will hook itself. 12:42:28 :: NWShader: Hooking into OpenGL... 12:42:28 :: NWShader: Hooked compressed texture creation. 12:42:28 :: NWShader: OpenGL hooked. 12:42:28 :: NWShader: Starting to load plugins... 12:42:28 :: NWShader: Error searching for plugins. 12:42:28 :: Set up DirectInput interface. 12:42:30 :: NWShader: Creating sys check context. Not cached. 12:42:30 :: NWShader: Making syscheck context current. 12:42:30 :: NWShader: Deleting syscheck context. 12:42:30 :: NWShader: Creating context. 12:42:31 :: NWShader: does not have cached device/context. Grabbing... 12:42:31 :: NWShader: Initializing system... 12:42:31 :: NWShader: Hooking into engine... 12:42:31 :: NWShader: Hooked engine functions. 12:42:31 :: Viewport info: 0; 0; 1680; 1050 12:42:31 :: GLEW: Started successfully. 12:42:31 :: DevIL: Started successfully. 12:42:31 :: Shader Factory: Starting Cg... 12:42:31 :: Cg: Using version 2.2.0010 12:42:31 :: Cg: Profile VP20 is not supported. 12:42:31 :: Cg: Profile FP20 is not supported. 12:42:31 :: Cg: Profile VP30 is not supported. 12:42:31 :: Cg: Profile FP30 is not supported. 12:42:31 :: Cg: Profile VP40 is not supported. 12:42:31 :: Cg: Profile FP40 is not supported. 12:42:31 :: Cg: Profile GPU_VP is not supported. 12:42:31 :: Cg: Profile GPU_FP is not supported. 12:42:31 :: Cg: Profile GP4VP is not supported. 12:42:31 :: Cg: Profile GP4FP is not supported. 12:42:31 :: NWShader: Creating textures... 12:42:31 :: NWShader: Framebuffers disabled in config. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture thisframe on 1. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture lastframe on 2. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture lastshader on 3. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture lastpass on 4. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture depthframe on 5. 12:42:31 :: Shader Factory: Texture format accepted. 12:42:31 :: Shader Factory: Created texture error.png on 6. 12:42:31 :: Shader Factory: Loaded texture error.png on 003EE478. 12:42:31 :: Shader Factory: Setup complete. 12:42:31 :: NWShader: Compiling shaders... 12:42:31 :: Shader Manager FS: Loaded shaders. 12:42:31 :: Set up DirectInput interface. 12:42:34 :: NWShader: Making null context current. 12:42:34 :: NWShader: Process deleting cached context. 12:42:35 :: NWShader: Creating context. 12:42:35 :: NWShader: does not have cached device/context. Grabbing... 12:42:35 :: NWShader: Initializing system... 12:42:35 :: NWShader: The double-start bug has struck. Attempting to reinit... 12:42:35 :: Config: Config file read. 12:42:35 :: GUI 12:42:35 :: Settings 12:42:35 :: TintWorld = false 12:42:35 :: DebugLevel = 0 12:42:35 :: Config: Reading shaders list. 12:42:35 :: Config: Error parsing shader. 12:42:35 :: Config: Done parsing config file. 12:42:35 :: NWShader was unable to load the language file for d. 12:42:35 :: NWShader: Hooking into engine... 12:42:35 :: NWShader: Hooked engine functions. 12:42:35 :: Viewport info: 0; 0; 1680; 1050 12:42:35 :: GLEW: Started successfully. 12:42:35 :: DevIL: Started successfully. 12:42:35 :: Shader Factory: Starting Cg... 12:42:35 :: Cg: Using version 2.2.0010 12:42:35 :: Cg: Profile VP20 is not supported. 12:42:35 :: Cg: Profile FP20 is not supported. 12:42:35 :: Cg: Profile VP30 is not supported. 12:42:35 :: Cg: Profile FP30 is not supported. 12:42:35 :: Cg: Profile VP40 is not supported. 12:42:35 :: Cg: Profile FP40 is not supported. 12:42:35 :: Cg: Profile GPU_VP is not supported. 12:42:35 :: Cg: Profile GPU_FP is not supported. 12:42:35 :: Cg: Profile GP4VP is not supported. 12:42:35 :: Cg: Profile GP4FP is not supported. 12:42:35 :: NWShader: Creating textures... 12:42:35 :: NWShader: Framebuffers disabled in config. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture thisframe on 1. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture lastframe on 2. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture lastshader on 3. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture lastpass on 4. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture depthframe on 5. 12:42:35 :: Shader Factory: Texture format accepted. 12:42:35 :: Shader Factory: Created texture error.png on 6. 12:42:35 :: Shader Factory: Loaded texture error.png on 003EFFD0. 12:42:35 :: Shader Factory: Setup complete. 12:42:35 :: NWShader: Compiling shaders... 12:42:35 :: Shader Manager FS: Loaded shaders. 12:42:35 :: Set up DirectInput interface. 12:43:29 :: NWShader: Making null context current. 12:43:29 :: NWShader: Process deleting cached context. 12:43:29 :: NWShader: Stopping... - Closing log file (dtor)
Regards
R-TEAM
#124
Posté 29 septembre 2013 - 08:55





Retour en haut






