Commit graph

3763 commits

Author SHA1 Message Date
Bill Currie
f8b5fc2842 Use multi-octave simplex noise for the smoke trails.
It looks ok-ish, but still needs a lot of work.
2014-01-31 12:01:20 +09:00
Bill Currie
77fa66b2e8 Properly separate the two glsl files in C. 2014-01-31 12:00:19 +09:00
Bill Currie
4258f0408a Remove the version controls.
They cause problems where they are. When I need them, all add them as
appropriate at the time.
2014-01-31 11:59:07 +09:00
Bill Currie
bcb1049f88 Convert particle physics to a scripted system.
The script format is the same as the console command-line, so no new
format :). The scripts are compiled to byte code and cached. They are
referenced by name (eg, "pt_fire"), though the names are likely to change.
It seems to work quite well and should prove to be a good basis for
scripting particle effects in general.
2014-01-31 10:40:44 +09:00
Bill Currie
0057970e3c Build the chunk chain correctly.
Losing all the middle chunks wasn't nice.
2014-01-31 10:13:56 +09:00
Bill Currie
bb5f5dd334 Correct the spelling of Fragment. 2014-01-29 16:37:48 +09:00
Bill Currie
83aa5759a2 Split up the trail fragment shader.
The barycentric shader is generally useful for debugging.
2014-01-29 16:37:48 +09:00
Bill Currie
8310f2aeee Add Stefan Gustavson's glsl noise shaders. 2014-01-29 16:37:48 +09:00
Bill Currie
e60132a9b0 Add a copyright block to quakeforge.glsl 2014-01-29 16:37:48 +09:00
Bill Currie
299f305453 Update the trails code to use shader effects.
Trails was actually the reason I started that project. This is just cleanup
after rebasing.
2014-01-29 16:37:48 +09:00
Bill Currie
bb022bc4fc Reverse the trail vertex order.
That webgl app was designed for GL's default of CCW for front faces, but
quake wants CW. Now the disable/enable of face culling isn't necessary.
2014-01-29 16:37:48 +09:00
Bill Currie
1a06712405 Handle the singularities on the trail vectors.
They're actually guaranteed for the first and last segments due to the
first and last points being duplicated in the buffer (simplifies design).
This also handles the rare case where a vector appears to go directly into
or out of the screen.

Everything works nicely if only one of n1 or n2 is 0, and for the very rare
case of both n1 and n2 being 0, then a final normal of 0 is reasonable.
2014-01-29 16:37:48 +09:00
Bill Currie
2fbab084a1 Build and draw solid trails for rockets.
And lava balls (handy test, actually).
2014-01-29 16:37:48 +09:00
Bill Currie
bd3647d671 Put the trail frag shader into debug mode.
This draws the wire-frame of the trail. Yay Florian Boesch.
2014-01-29 16:37:48 +09:00
Bill Currie
ddf4ff871f Make the entity param to trail functions non-const.
Needed for adding trails to entities.
2014-01-29 16:37:48 +09:00
Bill Currie
ddd8885cd6 Start working on solid trails for smoke etc.
The implementation is based on
http://codeflow.org/entries/2012/aug/05/webgl-rendering-of-solid-trails/

The shaders have been written and compile and link. The next step is to
generate some data for them.
2014-01-29 16:37:48 +09:00
Bill Currie
946561ba44 Don't bail out prematurely when searching for files.
This fixes the problem of not finding files without a .gz extension when
gzip support is enabled (most of my quake data is compressed, so it took a
while for me to notice the problem).
2014-01-29 16:13:24 +09:00
Bill Currie
99678a571b Remove *.slc on make clean. 2014-01-28 16:26:24 +09:00
Bill Currie
ab3f554a0e Limit the search for lit and ent files.
The search for these files will stop in the vpath that contains the .bsp
file to which they belong. This will prevent problems with
id1/maps/start.lit being used for shadows/maps/start.bsp.
2014-01-28 16:22:05 +09:00
Bill Currie
8bea6a66ca Create _QFS_VOpenFile and QFS_VOpenFile.
_QFS_VOpenFile is actually _QFS_FOpenFile reimplemented to take vpath start
and end parameters so the search can be limited. QFS_VOpenFile,
_QFS_FOpenFile, and QFS_FOpenFile are all wrappers for _QFS_VOpenFile.
2014-01-28 16:22:05 +09:00
Bill Currie
3efb0c538f Separate file search from loading.
QFS_LoadFile (and its wrappers) now  take a file handle rather than a
path. This will make vpath usage a little cleaner to implement.
2014-01-28 16:22:05 +09:00
Bill Currie
328b997843 Save the vpath in the model.
This will be used for restricting searches for auxiliary model files.
2014-01-28 16:22:05 +09:00
Bill Currie
83c47aacef Remove the stack loading from QFS_LoadFile. 2014-01-28 16:22:05 +09:00
Bill Currie
a561477274 Nuke QFS_LoadStackFile().
It was used in only one place and is really not necessary (these days,
anyway).
2014-01-28 16:22:05 +09:00
Bill Currie
25a060f369 Remove the foundname param from _QFS_FOpenFile.
It's now obsolete with qfs_foundfile.
2014-01-28 16:22:05 +09:00
Bill Currie
576c73cf7c Replace qfs_file_from_pak with qfs_foundfile.
This exposes the found name, vpath and in_pak status.
2014-01-28 16:22:05 +09:00
Bill Currie
e5148493db Prepend qfs_ to file_from_pak.
A little better name-spacing.
2014-01-28 16:22:05 +09:00
Bill Currie
82ded3fbe5 Fix some bitrot resulting from a rebase. 2014-01-28 16:22:05 +09:00
Bill Currie
5560696a65 Fix some unused variables. 2014-01-28 16:22:05 +09:00
Bill Currie
4b18501b00 Fix an uninitialized variable. 2014-01-28 16:22:05 +09:00
Bill Currie
40206904ba Reimplement _QFS_FOpenFile using QFS_FindFile's internals.
_QFS_FOpenFile does a full search, however.
2014-01-28 16:22:05 +09:00
Bill Currie
6b87ddbb7c Add QFS_FindFile.
QFS_FindFile's search can be constrained to begin or end at a certain
vpath.
2014-01-28 16:22:04 +09:00
Bill Currie
8bc2f7f6df Print the vpath name when dumping the paths. 2014-01-28 16:22:04 +09:00
Bill Currie
098821e35d Fix QFS_FilelistFill to work with vpaths. 2014-01-28 16:22:04 +09:00
Bill Currie
f05c7179c3 Split up the search paths into vpath chunks.
A vpath is the union of all locations searched for a file in a single
gamedir (eg, shadows, id1 etc). This is a necessary step to preventing
problems like id1/maps/start.lit being used for shadows/maps/start.bsp.

However, QFS_FilelistFill still needs to be reworked as it does not compile
yet (testing was done with a gutted QFS_FilelistFill).
2014-01-28 16:22:04 +09:00
Bill Currie
6910c50a43 Clean up the #ifdef mess in _QFS_FOpenFile
With proper initialization, only the one chunk of #ifdefs is needed. Now
the code is much easier to read.
2014-01-28 16:22:04 +09:00
Bill Currie
4d59282641 Find the remaining vertex attribute order issues.
I hope. I do need to figure out why I made sprite blend an attribute
rather than a uniform.
2014-01-28 16:22:04 +09:00
Bill Currie
a5db0b1a65 Remove the now unnecessary GLSL_CompileShaderS().
Now that the transition to using shader effects is comlete, there's no
need for the wrapper.
2014-01-28 16:22:04 +09:00
Bill Currie
57d2198140 Use the new shader system for iqm models. 2014-01-28 16:22:04 +09:00
Bill Currie
385175ca65 Use the new shader system for 2d drawing. 2014-01-28 16:22:04 +09:00
Bill Currie
c89e612cd4 Remove redundant fog and palette shader code. 2014-01-28 16:22:04 +09:00
Bill Currie
50bb40be29 Use the new shader system for sprites. 2014-01-28 16:22:04 +09:00
Bill Currie
68bd7e643d Remove the long dead text vertex shader. 2014-01-28 16:22:04 +09:00
Bill Currie
1d67f8f0c3 Use the new shader system for textured particles. 2014-01-28 16:22:04 +09:00
Bill Currie
1a7b532927 Use the new shader system for point particles. 2014-01-28 16:22:04 +09:00
Bill Currie
3af6a640fe Missed the old turb frag shader. 2014-01-28 16:22:04 +09:00
Bill Currie
a419fb2c92 Ensure the vertex coord attribute is attribute 0.
It seems mesa still has the bug where non-array attributes don't work
when set as attribute 0, and that the allocation order changed sometime
since I last tested with mesa. This fixes the black world and flickering
alias models on my eeepc.
2014-01-28 16:22:04 +09:00
Bill Currie
042d6e5728 Remove a couple of stale files.
Missed these in the bsp related commit.
2014-01-28 16:22:04 +09:00
Bill Currie
26fc0b74e6 Fix bsp water surfaces.
Everything seems to be working for the bsp renderer.
2014-01-28 16:22:04 +09:00
Bill Currie
f43592589d Use the new shader system in the bsp renderer.
It mostly works. Skybox is untested, and water surfaces are broken.
2014-01-28 16:22:04 +09:00