Commit Graph

274 Commits

Author SHA1 Message Date
a8ef804146 NEW: Ramp shades for diffuse and specular
http://www.blender3d.org/cms/Ramp_Shaders.348.0.html

Material color and specular now can be defined by a Colorband. The actual
color then is defined during shading based on:
- shade value (like dotproduct)
- energy value (dot product plus light)
- normal
- result of all shading (useful for adding stuff in the end)

Special request from [A]ndy! :)
2004-06-30 18:54:09 +00:00
6b51c684f1 NEW! Blender now displays flipped (negative scaled) Objects correctly in
OpenGL draw.

(BTW: the previous commit also solves raytrace errors with negative scaled
objects...)

Further a cleanup of displaylist flags and object/base flags. The #define
ACTIVE is moved to filesel.c (only used here).
The GONNA_MOVE #define got a OB_ added in front.
2004-05-29 16:17:46 +00:00
002a855275 fix for bug #1226:
With subsurf level 0, in editmode, the hidden faces where still drawn.
Was caused because subsurfing code then is skipped.
2004-05-06 17:32:17 +00:00
039719f3a1 Bug fix 823
Animated metaballs didn't update correctly when changing frame, this when
they were parented (for example) to an object with Ipo.
The fix consists of three things:

- the test_displist() call doesn't remake displist anymore, but frees it.
  this works, because when drawing an mball object it checks for a displist
  and creates one when needed
- the main drawing routine drawview3d() now has a separate loop where first
  all objects are updated with where_is_object(), then they're drawn.
  This effectively solves lag for mballs. Might improve other lags too!
- included in NumPad-9 call to test_displist() too, to force a full upgraded
  3d view
2004-04-08 12:00:58 +00:00
9206a1eba6 - replaced G.{edve,eded,edvl} with G.editMesh, atm just a structure to
hold the three lists, nothing major, but gives a place to hang data
    off of and a single "mesh" structure to pass around for editing
    functions.
2004-03-28 08:46:35 +00:00
aedf456938 - split the data structures that actually constitute a mesh
(MVert,MFace,etc) off into DNA_meshdata_types.h, to isolate areas
    of source that actually edit mesh *data* vs. areas that just edit
    mesh object information.
2004-03-20 22:55:42 +00:00
Chris Want
6c650c586d Fixed issues surrounding the increased vertex limit:
* Created a MESH_MAX_VERTS macro in DNA_mesh_types.h
* fixed vert limit for converting displistmesh ==> mesh
* fixed vert limit when doing boolean operations
2004-03-14 21:21:09 +00:00
Chris Want
dd3c9c0c46 Removed the struct MFaceInt from DNA_mesh_types.h (by the recommendation
of zr). This struct was never written to file and the new 'int based'
MFace can be used in it's place. Some removal of redundant code could
perhaps be done now (I didn't do any though, just "s/MFaceInt/MFace/").
2004-03-14 21:00:51 +00:00
c7a71e4042 rwenzlaff: Added call to makeDispList() in test_all_displists() after
object_wave(ob) called so subsurf and wave will update 3D window for Alt-A
	and frame change.

	fixes other 1/2 of bug #1000.
2004-03-08 02:48:43 +00:00
6a9d29d1db -Changed "Simple" button to pulldown menu or subsurf type.
Paves way for additional subsurf types, and avoids confusion
	where Simple is on, but Subsurf is off.
2004-01-10 01:22:07 +00:00
f6f06ba54d - removed duplicate flags from BKE_mesh.h
- removed rendermesh_uses_displist (no longer relevant)
 - converted appropriate me->flag tests to using mesh_uses_displist
 - made vert and face counting (for info header) use proper counts
 - changed flip_subdivision to allow level==0 argument
 - ps. thanks for subsurf orco fix ton
2004-01-08 04:42:29 +00:00
ecd620a5aa - removed some old cruft from init_render_displist_mesh (for smeshes-RIP)
- reduced main subsurf interface to two functions to make DispListMesh
    structures from an editmesh or a regular mesh. for the most part this
    means that to implement a geometry modifier you only need to write
    these two functions (not very plugable yet however).
 - added displistmesh_from_mesh and displistmesh_from_editmesh functions
    which allow simple support of subdivLevel(0) subsurfs, somewhat handy
    for testing things (like why orco doesn't work for subsurf).
2004-01-07 10:17:37 +00:00
8e9e9e6e35 - migrated a subsurf routine to displist.c: displistmesh_calc_vert_normals()
- removed some vertice tweaking for subsurf->displist conversion
 - replaced stupid way of doing edcode calculation for ME_OPT_EDGES flag
2004-01-07 05:50:17 +00:00
a7bed78040 - fixed bug in shaded view mode (SHIFT+Z) when it tried to calculate
reflection normals... NULL pointer reference.
  (thanks Desoto!)
2003-12-24 16:18:13 +00:00
ec99255c27 Phew, a lot of work, and no new features...
Main target was to make the inner rendering loop using no globals anymore.
This is essential for proper usage while raytracing, it caused a lot of
hacks in the raycode as well, which even didn't work correctly for all
situations (textures especially).

Done this by creating a new local struct RenderInput, which replaces usage
of the global struct Render R. The latter now only is used to denote
image size, viewmatrix, and the like.

Making the inner render loops using no globals caused 1000s of vars to
be changed... but the result definitely is much nicer code, which enables
making 'real' shaders in a next stage.
It also enabled me to remove the hacks from ray.c

Then i went to the task of removing redundant code. Especially the calculus
of texture coords took place (identical) in three locations.
Most obvious is the change in the unified render part, which is much less
code now; it uses the same rendering routines as normal render now.
(Note; not for halos yet!)

I also removed 6 files called 'shadowbuffer' something. This was experimen-
tal stuff from NaN days. And again saved a lot of double used code.

Finally I went over the blenkernel and blender/src calls to render stuff.
Here the same local data is used now, resulting in less dependency.
I also moved render-texture to the render module, this was still in Kernel.
(new file: texture.c)

So! After this commit I will check on the autofiles, to try to fix that.
MSVC people have to do it themselves.
This commit will need quite some testing help, but I'm around!
2003-12-21 21:52:51 +00:00
71500a2df1 - fixed another oldie... displaylists for MBall was generated FAR too often.
even for each redraw! Now its all smooth & fast again.

  introduced new kernel API call: int is_basis_mball(ob), this provides a
  quick check of the object is the actual basis for the displaylist and
  polygonization.
2003-11-21 12:30:15 +00:00
ce60c3edc1 - fixed smooth drawing of subsurf & mesh in 'shaded' draw mode.
looks indeed a lot better!
2003-10-25 17:33:47 +00:00
d26e8b1a04 - Lattice as parent of Metaball affect deforming of polygonized implicit surface
- fixed compile problem at IRIX with buttons_editing.c (look at JWalton's message in mailing list) ... sorry for mixed commit :-(
2003-10-14 12:09:57 +00:00
0d03929b9b Another huge commit!!!
First, check on the new files, which are listed below.
The new butspace.h is a local include, only to be used for the buttons
drawn in the buttonswindow.

- editbuts, animbuts, gamebuts, displaybuts, paintbuts,  work now
- i quite completely reorganized it, it's now nicely telling you what
  context it is in
- sorting error in panel align fixed (tabs were flipping)
- align works correctly automatic when you click around in Blender
- editsca.c renamed to buttons_logic.h
- button names are truncated from the right for allmost all buttons
  (except text buttons and number buttons)
- while dragging panels, you cannot move them outside window anymore

And of course fixed loads of little bugs I encountered while testing
it all. This is a version I really need good test & feedback for.

Next step: restoring material/lamp/texture/world
2003-10-10 17:29:01 +00:00
46cbeb28a0 bugreport from intrr:
- spec was at wrong location in shaded view
- shaded view didnt do 'nospec' and 'nodiffuse' options

Both fixed!
2003-07-22 21:50:21 +00:00
9bf630a1f3 WARNING: with makefiles I could not get a stable blender compiled.
do a make clean in source/blender/ to be sure!

- Included the new shaders from Cessen... well, only the shader calls
  themselves. To make sure the shaders work I nicely integrated it

- MaterialButtons: layout changed a bit, but still resembles the old
  layout. The 'shader' options now are located together.

- Shaders are separated in 'diffuse' and 'specular'. You can combine them
  freely.

- diffuse Lambert: old shader
  diffuse Oren Nayar: new shader, gives sandy/silky/skinny material well
  diffuse Toon: for cartoon render

- specular Phong: new spec, traditional 70ies spec
  specular CookTorr: a reduced version of cook torrance shading, does
                     off specular peak well
  specular Blinn: new spec, same features as CookTorr, but with extra
                  'refraction' setting
  specular Toon: new spec for cartoon render

- default blender starts with settings that render compatible!

- works in shaded view and preview-render

- works in unified render

Further little changes:

- removed paranoia compile warnings from render/loader/blenlib

- and the warnings at files I worked at were removed.
2003-07-19 20:31:29 +00:00
e1d6502259 - first of a series of translated C comments. No dutchies get advantage anymore soon... :-) 2003-04-25 15:48:11 +00:00
3f2f1571e5 added the following to configure.ac
+case "$target" in
+  *sparc* )
+        AC_DEFINE(SUN_OGL_NO_VERTEX_MACROS,1,[Fix for Sun's GL])
+  ;;
+esac
+

Also added the include to the above .c files.
I'm going to add it to everything in source just haven't gotten that far yet.

Kent
2002-11-25 10:13:52 +00:00
Hans Lambermont
12315f4d0e Initial revision 2002-10-12 11:37:38 +00:00