Triggered by this question (unfortunately the OP didn't elaborate on the context), I'm puzzled now: which operations are done in radians and which in degrees? In the 3d window all navigation is in degrees (presuming the Units selected for the scene are indeed degrees), but from what I read, internally Blender is using Radians, leading to some confusion when setting drivers, constraints, modifiers or texture mapping. So far I haven't run into any issues but I'm just trying to understand the logic behind it.
2 Answers
It seems blender uses radians internally everywhere as of 2.70, except for a few cases listed in the release notes:
Blender internally stores angles as radians (even though they are presented through UI as degrees), but in a few places degrees were still being stored, which added internal code clutter, and could generate bugs like T32843.
Here are affected properties:
Data:
Lamp.spotsize: Game engine exposed this setting in degrees, to not break the API here I kept it as such (using getter/setter functions), still using radians internally.
Mesh.smoothresh: Didn’t touch to this one, as we will hopefully replace it completely by loop normals currently in dev.
Modifiers:
- EdgeSplitModifierData.split_angle, BevelModifierData.bevel_angle: Done.
Postprocessing:
- WipeVars.angle (sequencer’s effect), NodeBokehImage.angle, NodeBoxMask.rotation, NodeEllipseMask.rotation: Done.
BGE:
bConstraintActuator: Orientation type done (the minloc[0] & maxloc[0] cases). Did not touch to limit location type, it can also limit rotation, but it exposes through RNA the same limit_min/limit_max, which hence can be either distance or angle values, depending on the mode. Will leave this to BGE team.
bSoundActuator.cone_outer_angle_3d, bSoundActuator.cone_inner_angle_3d: Done (note I kept degrees in BGE itself, as it seems this is the expected value here...).
bRadarSensor.angle: Done.
You can input a value in either radians or degrees by appending a "d" suffix (for a value in degrees) and a "r" suffix (for a value in radians) to the numerical value.
"1.5913513r" => in radians
"1.5913513d" => in degrees
For example, if you click the X-axis rotation button of an object to input a rotation value manually, and write "1r", after you press ENTER to commit the value the button will show 57.3º. Hovering the mouse over the button will show a tooltip saying "radians: 1.000000" (and 57.3 degrees is the approximate value of 1 radian).
You can use this when editing drivers, rotations etc. in case you prefer one unit over the other, and Blender will do the conversion for you.