Age | Commit message (Collapse) | Author |
|
This commit introduces bicubic bump map capabilities for the viewport for OpenGL 3.0+ capable GPUs.
To use the functionality change the bump mapping method to "best quality"
Previous "best quality" setting becomes "medium quality" now.
For non OpenGL 3.0 GPUs this becomes the same as "medium quality"
Also:
* added tooltip descriptions to the bump method settings.
* modified the shader to ommit extraneous matrix multiplications for matrices already provided by OpenGL.
Bicubic shader by Morten Mikkelsen. Thanks a lot!
Oh...and FIRST!
|
|
was an error with make-local refactor & path updating.
|
|
The problem was in fact in the changes made to blend_ramp() func at rev42164. The checks on green pointer (if(g) {...) were checking the existance of a valid value (i.e. if input color was rgb or only shades of grey in r pointer), but as we get now a full float[3] pointer, this test is no more possible. And doing if(r_col[1]) {... was wrong, as it only broke things in case green was 0.0 (which was the case with the generated glare color of bug report).
So, just removed all those tests!
|
|
than 3 float pointers.
also make particle draw use a float vec.
|
|
- remove unneeded type check from convert grease pencil operator.
- correct some error prints & use __func__.
- make copy_libblock take an ID* argument rather than void*.
|
|
so path manipulation functions dont run multiple times on the same path in the case of sequence strips where the one directory is used as the base for many images.
|
|
changes.
|
|
pass main rather than use G.main when naming from -> to relative paths.
|
|
http://markmail.org/message/fp7ozcywxum3ar7n
|
|
also added some better error checking in object_remove_material_slot() so it will print an error rather then crashing if this case ever happens again.
|
|
|
|
(backface culling on)
report by Mitchell Stokes over IRC, but probably one of the reason people have been asking
to expose the Game Settings material panel in the Render engine as well.
|
|
takes the object data rather then the object.
|
|
on by default
under suggestion of Mitchell Stokes (Moguri)
|
|
|
|
stored as shorts intermally)
- converting nurbs to mesh was casting the material to unsigned char.
- subsurf was casting to char, then int -> short in a loop.
- have material functions take & return shorts.
|
|
I doubt this makes any difference but still, good practises are always good.
|
|
defined, also comment unused var.
|
|
- quiet some warnings
- set some functions static
- replace materialbyname with generic BLI_findstring call
|
|
api reference until we get an update for 'Naiad'
|
|
Summary:
========
The idea here is to move the texface options into the material panel.
For images with the change please visit:
http://code.blender.org/index.php/2011/09/bge-material-texface-changes
1 - Some of the legacy problems 2.49 and 2.5x has with the texface system:
==========================================================================
1.1) Shadow, Bilboard and Halo are mutual exclusive (in the code), yet you can
select a face to be more than one mode.
1.2) Sort only works for blend Alpha yet it's an option regardless of the
Transparency Blend you pick.
1.3) Shared doesn't affect anything in BGE.
1.4) ObColor only works for Text objects (old bitmap texts) when using Texture
Face Materials. (not address yet, I so far ignored obcolor)
2 - Notes:
============
2.1) Now "Use Face Textures" in material Option panel will work in Multitexture
even if there is no texture channel.
2.2) In FaceTexture mode it will use TexFace all the time, even if you don't
check the "Use Texture Face" option in the UI. It's a matter of decision, since
the code for either way is there. I decided by the solution that makes the
creation of a material fast - in this mode the user doesn't need to mess with
textures or this "Use Texture Face" option at all. I'm not strong in my opinion
here. But I think if we don't have this then what is the point of the Texture
Face mode?
2.3) I kept references for tface only when we need the image, UV or the tiling
setting. It should help later when/if we split the Image and UV layers from the
tface struct (Campbell and Brecht proposal).
3 - Changes in a Nutshell:
==========================
3.1) "Texture Face" panel (in the Mesh/Object Data panel) no longer exists. Those settings are all part of the material properties, visible when Game Render is set.
3.2) "Texture Face" Shading mode (in the Render panel) is now called “Single Texture”, it needs a material for special settings (e.g. Billboard, Alpha Sort, …).
3.3) New options in the Material Panel
* Shadeless option in the Material panel is now supported for all three Shading modes.
* Physics is now toggleable, this is the old Collision option.
* Two Side (on) is now called Back Culling (off).
* Alpha Sort is one of the Alpha options, together (and mutually exclusive) to Alpha Blend, Alpha Clip, Add and Opaque (i.e. solid).
* Shadow, Billboard and Halo are grouped in the “Face Orientation” property.
* "Face Textures" and "Face Textures Alpha" (under Options) can be used for all but GLSL shading mode (to be supported in GLSL eventually).
* The backend in the game engine is still the same as before. The only changes are in the interface and in the way you need to think your materials. The bottomline is: It’s no longer possible to share materials between faces that do not share the same game properties.
4 - Acknowledgment:
==================
Mike Pan for the design discussions, and testing along the whole development process.
Vitor Balbio for the first hands-on code with the interface changes. That helped me a lot to push me into work on that.
Benoit Bolsee and Brecht van Lommel for patch review (* no one reviewed the whole patch, or the latest iteractions, so I still hold liability for any problems).
Blender artists that gave feedback and helped testing the patch.
Patch review and original documentation can be found here:
http://wiki.blender.org/index.php/User:Dfelinto/TexFace
http://codereview.appspot.com/4289041/
|
|
|
|
This would previously break because begin/end functions for each tree type still have some checks of the ntree->execdata pointer in them, despite the intended use of execdata instances instead of trees themselves for execution data storage. This is an artifact of the old execution system that required these checks to be made in the functions to avoid multiple execution of top-level trees. Now these functions take an additional argument, so group nodes can prevent them from setting and checking the nodetree->execdata pointers.
|
|
This branch adds mostly organizational improvements to the node system by renaming the node folders and files. A couple of internal features have been added too.
Detailed information can be found on the wiki page:
http://wiki.blender.org/index.php/User:Phonybone/Particles2010
|
|
- use NULL rather than 0 when used as pointers.
|
|
- The object ID was being passed to the data_delete_material_index_id() from object_remove_material_slot(), rather then the object data. (so the material slot fix wouldnt run in that case).
- add support for fixing text object materials too.
|
|
create a new parameter for materials.pop() to not remove material slot.
this way the mat_nr is still the old one.
for the default behaviour we now have material remapping (i.e. data_delete_material_index_id(id, index)).
This new function is brought from the material_slot remove function.
|
|
38299 - patch by Benoit Boilsee
bug spotted while reviewing a patch.
things are working now
|
|
|
|
|
|
and textures, unused still.
|
|
- making local object data - Curve/Mesh/MBall lost references to linked materials.
- joining a linked mesh object into a local one lost the link.
As well as these reported bugs, checked all local functions for consistency/correctness and found other cases which would also fail.
- making local metaball didn't ensure unique ID name.
- make_local_armature() was missing check for object users - main body of code would never run.
- local particles didn't set the dupli-group or textures to extern.
checked all local functions for consistency/correctness.
|
|
|
|
- also fix own bad assert from yesterday & remove testing cmake print.
|
|
- assert if material assignment is called with lib. (so the callers can be corrected).
- correct example docs
|
|
- Assigning local materials to library objects disabled
(crashes on undo/redo cases)
- Disabling options in Material buttons to add/remove slots
on library data
- Drawing Object ID template in Object properties, this
allows browse active Object, but especially shows library
status then.
|
|
Texture preview render now doesn't increment/decrement material->texture
user counts anymore. Blenders library.c code could use some overhaul
once to support data relinkage and copying around better. :)
|
|
It's obviously much better than the two previous behaviors, since you don't
get confusing linked materials, and you don't have useless added materials.
|
|
floats.
|
|
|
|
Node materials with 'ray transparency' set now work again.
Fix provided by Ervin Weber, thanks a lot!
|
|
python functions.
- use NULL rather then 0 where possible (makes code & function calls more readable IMHO).
- set static variables and functions (exposed some unused vars/funcs).
- use func(void) rather then func() for definitions.
|
|
in one place when duplicating nodes, which is not an actual copying of the tree. The node duplicate operator now copies selected nodes itself.
|
|
oldbump -> original
newbump -> compatible
*new* -> default (3tap)
*new* -> best quality (5tap)
the latter two have an option to apply bumpmapping in
viewspace - much like displacement mapping
objectspace - default (scales with the object)
texturespace - much like normal mapping (scales)
|
|
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
|
|
MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
|
|
Many thanks to them!
For comparison, see here:
http://kishalmi.servus.at/3D/bumpcode/
Based on algorithm in: Mikkelsen M. S.: Simulation of Wrinkled Surfaces Revisited.
http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf
This fixes bugs:
#24591: Artefacts/strange normal mapping when anti-aliasing is on
#24735: Error at the Normal function.
#24962: Normals are not calculated correctly if anti-aliasing is off
#25103: Weird artefacts in Normal
This will break render compatibility a bit, but fixing this bugs would have also
done that, so in this case it should be acceptable.
Patch committed with these modifications:
* Bump method Old/3-Tap/5-Tap option in UI, 3-Tap is default
* Only compute normal perturbation vectors when needed
* Fix some middle of block variable definitions for MSVC
|
|
like in 2.4x. This can result in material datablocks you don't need, but not
doing it seems to cause too much confusion.
|
|
After loading file, the Undo-push happened too early, causing an
undo for the first action to show animated setups wrong.
(material.c: removed old crap)
|
|
The icons for materials were always lagging or not updating
at all. I also found it suspicious slow...
It appeared that the icons now store a "mip level", where for
every change in Materials 2 render jobs for icons were started,
one for 32x32 pix, one for 96x96. The latter was cancelling out
the first job almost always.
Also made preview renders detect size, to set amount of tiles
to be rendered. Small icons use 1 part, larger previews 16 now.
All in all, behaves much smoother now! But, will also update
the thread Jobs manager to allow "delayed jobs" like for icons,
these are aggressively put as first in the jobs list.
|