Commit Graph

29 Commits

Author SHA1 Message Date
8655be437d code cleanup: use bool where values are true/false, for view3d and related functions. 2013-03-20 23:14:18 +00:00
fdfa5910b5 Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashes
Issue was caused by couple of circumstances:

- Normal Map node requires tesselated faces to compute tangent space
- All temporary meshes needed for Cycles export were adding to G.main
- Undo pushes would temporary set meshes tessfaces to NULL
- Moving node will cause undo push and tree re-evaluate fr preview

All this leads to threading conflict between preview render and undo
system.

Solved it in  way that all temporary meshes are adding to that exact
Main which was passed to Cycles via BlendData. This required couple
of mechanic changes like adding extra parameter to *_add() functions
and adding some *_ex() functions to make it possible RNA adds objects
to Main passed to new() RNA function.

This was tricky to pass Main to RNA function and IMO that's not so
nice to pass main to function, so ended up with such decision:

- Object.to_mesh() will add temp mesh to G.main
- Added Main.meshes.new_from_object() which does the same as to_mesh,
  but adds temporary mesh to specified Main.

So now all temporary meshes needed for preview render would be added
to preview_main which does not conflict with undo pushes.

Viewport render shall not be an issue because object sync happens from
main thread in this case.

It could be some issues with final render, but that's not so much
likely to happen, so shall be fine.

Thanks to Brecht for review!
2013-02-05 12:46:15 +00:00
146d1b9cab minor changes to view3d
- BKE_camera_params_from_object now sets the lens to 35 if the object isnt a camera/lamp, without this the view3d lens would be used in camera view.
- running smooth-view multiple times now stores the initial user view rather then over-writing from the current state each time re-smoothview runs.
- redraw panels after smoothview finishes.
2013-01-17 08:46:46 +00:00
6bb45495d1 fix for r51636 - making the lens work in ortho mode made view-all and local-view operators give bad zoom levels. 2012-11-30 06:10:01 +00:00
1fecf8ff31 Patch #29142: Reduce hopping when switching between perspective and orthographic on 3D view
Patch by Yasuhiro Fujii, thanks!

Original issue was that in vases viewport's lens are different from default
value switching between perspective and orthographic projections will change
viewplane a lot, which is disorienting and annoying.
2012-10-24 16:15:46 +00:00
f3ece5a108 style cleanup: trailing tabs & expand some non prefix tabs into spaces. 2012-10-21 05:46:41 +00:00
2f2560eb49 use sensor size when calculating dof rather then hard coded values. 2012-08-09 15:59:32 +00:00
c93d7a193a style cleanup: BKE_*.c files which deal with library functions 2012-05-06 15:15:33 +00:00
a731e13043 code cleanup: function naming, use BKE_*type* prefix. 2012-05-05 14:03:12 +00:00
084fedd03a code cleanup: brush/camera naming 2012-05-05 00:58:22 +00:00
Dalai Felinto
d7fbe03a8a Fisheye Camera for Cycles
For sample images see:
http://www.dalaifelinto.com/?p=399 (equisolid)
http://www.dalaifelinto.com/?p=389 (equidistant)

The 'use_panorama' option is now part of a new Camera type: 'Panorama'.
Created two other panorama cameras:

- Equisolid: most of lens in the market simulate this lens - e.g. Nikon, Canon, ...)
             this works as a real lens up to an extent. The final result takes the
             sensor dimensions into account also.
             .:. to simulate a Nikon DX2S with a 10.5mm lens do:
                 sensor: 23.7 x 15.7
                 fisheye lens: 10.5
                 fisheye fov: 180
                 render dimensions: 4288 x 2848

- Equidistant: this is not a real lens model. Although the old equidistant lens simulate
               this lens. The result is always as a circular fisheye that takes the whole sensor
               (in other words, it doesn't take the sensor into consideration).
               This is perfect for fulldomes ;)

               For the UI we have 10 to 360 as soft values and 10 to 3600 as hard values (because we can).


Reference material:
http://www.hdrlabs.com/tutorials/downloads_files/HDRI%20for%20CGI.pdf
http://www.bobatkins.com/photography/technical/field_of_view.html

Note, this is not a real simulation of the light path through the lens.
The ideal solution would be this:
https://graphics.stanford.edu/wikis/cs348b-11/Assignment3
http://www.graphics.stanford.edu/papers/camera/


Thanks Brecht for the fix, suggestions and code review.
Kudos for the dome community for keeping me stimulated on the topic since 2009 ;)

Patch partly implemented during lab time at VisGraf, IMPA - Rio de Janeiro.
2012-05-04 16:20:51 +00:00
e701f9b670 style cleanup: whitespace / commas 2012-04-29 15:47:02 +00:00
69e6894b15 style cleanup: follow style guide for formatting of if/for/while loops, and else if's 2012-03-24 06:18:31 +00:00
2f348d8b5d style cleanup: mainly for mesh code, also some WM function use. 2012-03-24 02:51:46 +00:00
4f19c1a995 spelling cleanup 2012-03-18 07:38:51 +00:00
3311164b24 Math lib: matrix multiplication order fix for two functions that were
inconsistent with similar functions & math notation:

mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)

For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
2011-12-16 19:53:12 +00:00
9b2df014d2 fix [#29459] Crash making a linked object group local
was an error with make-local refactor & path updating.
2011-11-30 00:32:13 +00:00
e5f40a1aac - pyapi mathutils.geometry.intersect_plane_plane
- isect_plane_plane_v3 uses better method
- minor refactor - arg name changes & some args as const.
2011-11-20 05:56:21 +00:00
5d2a155f2b Camera: some more refactoring, mostly in the function that computes the camera
border, now we just get the border coordinates from comparing the viewport and
camera viewplanes.
2011-11-19 18:35:42 +00:00
f3613be1fb add poll function for VIEW3D_OT_camera_to_view_selected & remove some unused code.
also made it so copying camera sets the dof object to extern.
2011-11-19 01:24:40 +00:00
4924abaad6 replace fabs with fabsf where both input and output are floats. 2011-11-19 01:10:05 +00:00
26e08e1b9d Camera Sensor:
* Tweak description of sensor fit property.
* Fix sensor display for auto and vertical fit.
* Fix incorrect aspect ratio for camera frame drawing.
2011-11-18 23:15:11 +00:00
5429a701c4 Camera: more code refactoring, adding a function to create CameraParams from
3d view, deduplicating the complex code for setting up the viewplane.
2011-11-18 21:19:03 +00:00
539c94a051 Camera: some code refactoring, use an intermediate CameraParams struct instead
of long list of variables everywhere. Intention is to also let 3d view use this
eventually, instead of duplicating code.
2011-11-18 15:52:00 +00:00
a7ed8f5e4a fix for shiftx/y for recently added VIEW3D_OT_camera_to_view_selected operator. 2011-11-14 08:43:09 +00:00
a34fed3f2c VIEW3D_OT_camera_to_view_selected operator to move the camera to frame
all selected, renderable objects.
2011-11-14 03:54:23 +00:00
bb8fe0bf4a minor edits
- 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*.
2011-11-07 04:36:37 +00:00
647447db58 Code refactoring: split lamp functions from object.c into new lamp.c. 2011-11-05 13:11:49 +00:00
9884129117 Code refactoring: split camera functions from object.c into new camera.c. 2011-11-05 13:00:39 +00:00