Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

An update to Anim8or, v1.00b, is available with a few bug fixes. Get your copy HERE. See the "ReadMe" file for details.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Steve

Pages: 1 2 [3] 4 5
31
Ongoing Anim8or Development / GLSL Shaders
« on: August 27, 2014, 06:11:31 pm »
Build 1097 adds support for OpenGL GLSL shaders.

Originally Anim8or used ARB fragment program assembly language shaders because many Anim8or users' graphics didn't support GLSL. Currently there shouldn't be any visible differences between the two shaders. GLSL is easier to write than assembly language and I will be improving the graphics. I'm toying with the idea of user written shaders of some form, either in ASL or graphically, but this is still a bit in the future.

Please let me know if you find any differences between GLSL and the ARB shaders (and of course any bugs that you find). You can toggle through shader types with the <Ctrl-B> key: GLSL -> ARB -> OpenGL Materials.

Note: there are slight differences in the shading between OpenGL Materials and the shader language because:
1) OpenGL Materials use vertex lighting and shaders use per-pixel lighting, and
2) Shaders use true Phong shading while OpenGL Materials use a half-angle reflection for specular hilights.

32
Ongoing Anim8or Development / Alignment Ruler
« on: April 18, 2014, 11:49:00 pm »
Alignment Ruler: The CAD ruler now has some preliminary alignment properties. You can align shapes along their top, center and bottom with the Alignment Ruler.
  • Make sure CAD mode is enabled.
  • Click on the Alignment Ruler to enable/disable alignment. This is the little arrow at the left or bottom of a view.
  • Click drag the ruler to move it; double click in and empty part of the lower or left-hand parts of a view to set an entirely new position.
  • If you have one shape selected, the ruler will snap to it's top/center/bottom when you are within the current Grid-Snap distance. The color will change from Blue to Yellow to indicate that it has snapped.
  • If you move a shape when the ruler is selected it will snap to the ruler in a similar manner.
  • The ruler only appears in the front, back, top, bottom, left and right views.
  • I'm working on point alignment for an upcoming release.

33
Ongoing Anim8or Development / Fast Selection
« on: April 18, 2014, 11:00:35 pm »
Fast Selection is enabled by default in the Object editor as of build 1086. This allows you to click on an unselected shape and immediately edit it, without changing to Select mode and back or using Control-Shift. It works for the Select, Move, Rotate, Scale and Non-Uniform Scale tools in the base Object editor. It is enabled by default but you can change back to the old behavior in the GUI dialog.

I've had portions of this ready for a while but couldn't decide on the details. I'm reluctant to change the behavior of something so fundamental to work flow but, as many of you have suggested, there are better ways to handle selection. I'm interested in your feedback on what you like and don't like about how I've implemented it and whether you want this enabled by default. So don't be shy about replying!

34
Ongoing Anim8or Development / General UI and Workflow Suggestions
« on: April 08, 2014, 05:48:04 am »
Post your general UI and workflow suggestions here:

35
You can now use the mouse wheel to zooms the graphic views in and out, and to scroll the material and left hand toolbar. You don't have to click in a particular area - it acts on whatever the mouse is over at the time.

In uniform scale mode the mouse wheel scales the object up and down.

In non-uniform scale mode it scales in the X direction if the left mouse button is pressed, and in the Y direction if the right button is pressed.

Note: There is a bug that causes the view to scale at the same time. I plan to fix that so that Anim8or only scales for these two tools.

Any feedback is welcome on what you like or don't like, or other suggestions for the mouse wheel.

36
Snap to Grid: Changed to snap to absolute locations [1.83 -->  2.00] instead of relative [1.83 -> 2.83].  Holding down the Shift key when you start the operation switched back to relative.

I changed the snap-to-grid setting to do something more intuitive/useful/expected. Before it was a mixture of behaviors depending on what tool you were using. However, as several people have pointed out, the original behavior is often useful as well. So it works like this:

Default: when you move a point, a component, etc. the value is immediately snapped to the nearest absolute value, defined by the grid's granularity. By default it is 1 so the coordinates move to the closest integral value. 1.23 --> 2.00 --> 3.00

Shift key pressed: values change by a multiple of the grid's granularity. 1.23 --> 2.23 --> 3.23.

I think I have converted most of the code in the Object editor to work this way. Let me know if you find anything that doesn't follow this rule.

And feel free to add your feedback as to what you like and don't like.

37
Ongoing Anim8or Development / Initial CAD-style feature
« on: March 26, 2014, 01:38:42 am »
Build 1075 introduces the initial step towards adding a few CAD-style feature to Anim8or. To enable it click on the new button in the top toolbar that looks like a little ruler, or type Ctrl-D. Then select a single item. Anim8or will show the minimum and maximum coordinates,horizontally and vertically, relative to that view.

Note: this only displays in non-perspective views, and is limited to the Object editor for now.

The next part I have planned is to add alignment tools.  You'll be able to click on the horizontal and vertical edges of the window to set "sticky" plains. When you move an item so that it's bottom, axis, or top is close to a plain it will align exactly, similar to how Align To Grid works.  Moving spline points, points in the point editor, etc. will do something similar.

There are a lot of other things that Anim8or could potentially do.  Feel free to post you feedback :)

38
ASL Scripts / New ASL features in development build 1071
« on: March 05, 2014, 11:18:15 pm »
I just posted an updated development build with a bunch of new ASL functionality.  Check it out and let me know what you think!

39
Ongoing Anim8or Development / ASL layer functions
« on: March 05, 2014, 11:04:05 pm »
There is a new int member layer in shapes that you can read and set.  It is silently clamped to between 0 and 7 if you assign a value out of range:

    int shape.layer;

Objects have new functions for accessing and setting layer properties:

    int object.IsLayerVisible(int layerNo);
    int object.IsLayerLocked(int layerNo);
    int object.ShowLayer(int layerNo, int ShowValue);
    int object.LockLayer(int layerNo, int Lockvalue);

LockLayer and ShowLayer lock and make visible the given layer when the second parameter is non-zero, respectively. They return the old value.

40
Ongoing Anim8or Development / ASL Quaternion Functionality
« on: March 05, 2014, 10:51:27 pm »
New quaternion functions:

    point3 QuaternionToRPY(quaternion);
    quaternion slerp(quaternion, quaternion, float);
    quaternion squad(quaternion, quaternion, quaternion, quaternion, float);

New quaternion operators:

    addition: Q + Q
    subtraction: Q - Q
    multiplication: Q * Q

41
Ongoing Anim8or Development / ASL Attribute Functions
« on: March 05, 2014, 10:48:43 pm »
ASL now has functions add new attributes and to change their types and values.  Previously you could only read existing attributes' values.  In addition attribute functions now work for materials.

Object attribute functions:
    attrubute object.NewAttribute(string name);

Material attribute functions:
    int material.GetNumAttributes(void);
    attribute material.GetAttribute(int index);
    attribute material.LookupAttribute(string name);
    attribute material.NewAttribute(string name);

Functions to set attribute values:
    int attribute.SetKind(AttributeTypes);
    int attribute.SetBoolValue(int);
    int attribute.SetIntValue(int);
    int attribute.SetFloatValue(float);
    int attribute.SetPoint3Value(point3);
    int attribute.SetQuaternionValue(quaternion);
    int attribute.SetStringValue(string);

Note: these functions automatically change the type of an attribute to match the type of the SetTypeValue call, so be careful when using them. I thought that this would make it easier to add new attributes but if you thing that they should check that the type matches, or convert the value, let me know.

They return 1 if they succeed which should always happen, for now. This will change if we decide that they should check the types in one form or another.


42
Ongoing Anim8or Development / ASL $main() function
« on: March 05, 2014, 10:30:07 pm »
If you declare a function named $main your script will initiate with a call to that function. It must return the type void and have no parameters or simply void:

void $main(void) { ... }

Other global executable statements are prohibited when there is a $main function, but global variable declarations are allowed.


43
Ongoing Anim8or Development / ASL integer bit-wise operators
« on: March 05, 2014, 10:26:09 pm »
Build 1071 adds the integer bit-wise operators &, ^, |, << and >>. Since there is no unsigned int in ASL the right shift always sign extends.

Build 1075 adds bit negate ~, and ++ and --.

Note: Build 175 had a bug parsing prefix ++ and -- so it was replaced by build 1076.

44
This builds adds do/while, C-like for, break and continue statements. They should have the same semantics as C so give them a try and let me know if you find any problems.

45
Ongoing Anim8or Development / ASL Functions
« on: February 25, 2014, 06:13:45 am »
As of build 1070 Anim8or supports user functions in ASL. The format is like normal functions:

<type> name ( <type> ident, <type> ident, ...)
{
    <statements>
}

There is a new type void for functions that don't return a value and a new statement:
return <expr>;
As usual, return statements can only appear in functions and don't have the <expr> for void functions.

OK now the restrictions:

1. No forward declarations. Function headers must be followed by the definition in the form of a compound statement "{...}".

2. No recursion. Anim8or doesn't check for self-recursion yet (a last minute bug  :().  If you try it be prepared for chaos. I plan on allowing recursion but it's quite a bit of work to do efficiently so it may take a while.

3. Functions must be declared before they are called.

4. There is no "main" function yet. Any statements that aren't in a function are gathered into the "main" function, no matter where they appear.  Kind of whacky, I know, but this allows you to more easily add functions to existing scripts. I'll fix this shortly by supporting a "main" structure.

5. No array parameters. All parameters and function results are the predefined types: int, string, float, point2, point3, quaternion, float4x4, shape, meshdata, spline, material, attribute, texture, object, figure, sequence, scene, and tridata.

6. All parameters are passed by value. Remember: types that represent objects within Anim8or (shape, meshdata, material, etc.) are actually handles so any changes to the parameter within a function affect the same object as outside the function. In the future I hope to add support for an out modifier to return values through parameters as well as via the function result.

7. Function format parameter and local declarations are in a separate scope from global variables.  Declarations within compound statements {} are still in the enclosing scope however. I hope to fix this soon as well but it could potentially break existing scripts. Let me know if you think this would be a big problem.

8. Not really function related, but you can use C++-style "//" comment delimiters now.

I'll post a couple of examples when I get a chance but hopefully this gives you something to start with!



Pages: 1 2 [3] 4 5