Skip to content

Commit

Permalink
GITBOOK-14: No subject
Browse files Browse the repository at this point in the history
  • Loading branch information
Neill3d authored and gitbook-bot committed Oct 20, 2024
1 parent 9b62558 commit c18493a
Show file tree
Hide file tree
Showing 13 changed files with 130 additions and 125 deletions.
Binary file added docs/.gitbook/assets/image (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/.gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (3).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/.gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions docs/plugins/plugins/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ A device plugin for live streaming via OSC from FaceCap iPhone App For more info

## View Manipulators

A plugin which hook the user input operations with the viewport in order to perform some action in the scene like transforming objects by dragging manipulator handle with the mouse input
A plugin that hooks into user input operations within the viewport to perform actions in the scene, such as transforming objects by dragging the manipulator handles using mouse input.

[Lock Camera Manipulator](manipulator\_lockcamera.md)

Expand All @@ -59,15 +59,15 @@ Shading, fx, geometry preparation for rendering

### Post Processing Filters

A special user object, that helps to add post process filters on top of your camera view.
A special user object, that helps to add post process effects on top of your camera view.

[![MoPlugs](https://github.com/Neill3d/MoBu/blob/master/Documentation/Images/Bryan\_usecase.jpg)](../../)

[Read More...](postprocessingeffects.md)

### Super Dynamic Lighting Shader

This is an advance version of Dynamic Lighting Shader with features like vertex displacement, specular map, Matcap shading, etc.
This is an advance version of Dynamic Lighting Shader with features like vertex displacement, specular map, MatCap shading, etc.

[Read More...](shader\_superdynamiclighting.md)

Expand Down
24 changes: 12 additions & 12 deletions docs/plugins/plugins/attachmentconstraint.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# Surface Attachment Constraint

Constraint to attach a transform of a given model into a deformable surface of another model.
<figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>

NOTE: in order to bake the motion of constrained model, you have to use a Hard Plot method (there is a correspondent script in action scripts), that means that we can't use a background bake solver, we have to evaluate scene deformation of a source model in every frame, so hard plot goes frame by frame, evaluates the scene and writes keyframes of a constraint model.
A constraint to attach the transform of a given model to the deformable surface of another model.

{% hint style="info" %}
In order to bake the motion of a constrained model, you need to use the Hard Plot method (there is a corresponding script in the action scripts). This means we can't use a background bake solver; instead, we must evaluate the scene deformation of the source model on every frame. Hard Plot goes frame by frame, evaluates the scene, and writes keyframes for the constrained model.
{% endhint %}

## Video

Introduction Video - https://youtu.be/M0MGZV39G1c?si=o9dfFC8QskG4cCRX
I[ntroduction Video](https://youtu.be/M0MGZV39G1c?si=o9dfFC8QskG4cCRX)

## LOG

06.10.18
Updated and included into OpenMoBu
06.10.18 Updated and included into OpenMoBu

15.12.15
Fix attachment rotation issue by using TBN matrix
15.12.15 Fix attachment rotation issue by using TBN matrix

13.12.15
First workable version
13.12.15 First workable version

26.11.15
Added barycentric coordinates to hold specified surface area, use normal then to compute new constrained rotation
26.11.15 Added barycentric coordinates to hold specified surface area, use normal then to compute new constrained rotation
4 changes: 2 additions & 2 deletions docs/plugins/plugins/constraint_twistextraction.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Twist Extraction Constraint

A constraint to extract a rotation along a given local axis from a full 3 dimentional rotation.
A constraint that extracts rotation along a given local axis from a full 3-dimensional rotation.&#x20;

A similar technique is used for roll joints on a humanIK, where on arms, hands, legs rotations along the joint local axis are destributed into roll joints rotations and improve the quality of skinned meshes
This technique is commonly used for roll joints in HumanIK setups, where the rotations along the local axis of arms, hands, and legs are distributed across roll joints to improve the quality of skinned meshes.

![TwistExtractionConstraint](../../Plugins/constraint\_twistExtraction.jpg)

Expand Down
44 changes: 20 additions & 24 deletions docs/plugins/plugins/drivenpropertyconstraint.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,35 @@
# Driven Property Constraint

The main usage is to transfer value of some non animatable property into an animatable property.
For example, to control a scale of a box by curve path length.
The main use of this constraint is to transfer the value of a non-animatable property to an animatable property. For example, controlling the scale of a box based on the length of a curve path.

### How To Use
### How To Use:

* Add a Driven Property constraint into the scene
* Put an object that you want to read property value from into a Source group
* Put an object that you want to transfer value into a Constrain group
* Switch to Setup tab in the Constraint UI Layout
* Drag and drop the source object once again but this time into a first container
* Drag and drop the constrain object into a second container
* Choose a property for the source and destination. An example is shown on the picture
* Activate the constraint and the value from the source object's property will be written into the destination object's property
* Add a Driven Property constraint to the scene.
* Add the object from which you want to read the property value into the Source group.
* Add the object to which you want to transfer the value into the Constrain group.
* Switch to the Setup tab in the Constraint UI Layout.
* Drag and drop the source object again, but this time into the first container.
* Drag and drop the constrain object into the second container.
* Select the property for both the source and the destination. An example is shown in the picture.
* Activate the constraint, and the value from the source object's property will be transferred to the destination object's property.

![Example scene](https://github.com/Neill3d/OpenMoBu/blob/master/Documentation/Images/driven_property_constraint.jpg)
<figure><img src="../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>

### Test Scenes

- [Camera Driven Property Example](https://github.com/Neill3d/OpenMoBu/blob/master/MB_Scenes/constraint_DrivenProperty_Camera.fbx)
- [Curve Path Length Example](https://github.com/Neill3d/OpenMoBu/blob/master/MB_Scenes/DrivenProperty_CurvePathLength.fbx)
* [Camera Driven Property Example](../../../MB\_Scenes/constraint\_DrivenProperty\_Camera.fbx)
* [Curve Path Length Example](../../../MB\_Scenes/DrivenProperty\_CurvePathLength.fbx)

### Videos

* [Curve Path Length Example](https://drive.google.com/file/d/1QtuZqPx-RxS-W9v42Tz3nKA_U8V3rR9x/view?usp=share_link)
* [Simple Camera Property Example](https://www.youtube.com/watch?v=jSqzdz_fkoA)
* [Curve Path Length Example](https://drive.google.com/file/d/1QtuZqPx-RxS-W9v42Tz3nKA\_U8V3rR9x/view?usp=share\_link)
* [Simple Camera Property Example](https://www.youtube.com/watch?v=jSqzdz\_fkoA)

### Log

* 22.09.2013 – fix save/load issue in mobu 2014 version
* 07.05.2013
mobu 2014 64 bits
* 28.05.2012
mobu 2013 64 bit
* 11.11.2011
mobu 2012 64bit;
fix displaying properties in UI when reset constraint;
add load/save constraint properties.
* 07.05.2013 mobu 2014 64 bits
* 28.05.2012 mobu 2013 64 bit
* 11.11.2011 mobu 2012 64bit; fix displaying properties in UI when reset constraint; add load/save constraint properties.
2 changes: 1 addition & 1 deletion docs/plugins/plugins/manipulator_lockcamera.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Lock Camera Manipulator

The plugin draws a small "locker" button on left upper corner of each viewer pane. It's a toggle button to control either a user could change a camera in a pane or the camera should be locked with a current one.
The plugin draws a small 'locker' button in the upper left corner of each viewer pane. It is a toggle button that controls whether the user can change the camera in the pane or if the camera should be locked to the current one.

![LockCameraManipulator](../../Plugins/manipulator\_lockCamera.jpg)
122 changes: 66 additions & 56 deletions docs/plugins/plugins/postprocessingeffects.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Post Processing Effects
It's a part of OpenMoBu project and could be found in OpenMoBu repository on Github

The plugin that applies post effects in your viewport window
[![MoPlugs](https://github.com/Neill3d/MoBu/blob/master/Documentation/Images/Bryan_usecase.jpg)]()

It's a part of OpenMoBu project and could be found in OpenMoBu repository on Github

The plugin that applies post effects in your viewport window [![MoPlugs](https://github.com/Neill3d/MoBu/blob/master/Documentation/Images/Bryan\_usecase.jpg)](postprocessingeffects.md)&#x20;

List of available effects:
* color correction
* displacement

* Color correction
* Displacement
* Depth of Field (DOF)
* Film Grain
* Fish Eye
Expand All @@ -15,110 +17,118 @@ List of available effects:
* Vignetting

## How To Start

The effects could be applied only in a camera view.

In order to apply effects, you have to create a post process user object which contains all properties. You can do that from Assets Browser or from the Post Process Tool. In Assets Browser the user object is located in `Assets / Templates / Shading Elements`

The use of python tool will be shown in the next topic, let's do that from assets browser.
![PostProcessingTool](/post_process_asset.jpg)
The use of python tool will be shown in the next topic, let's do that from assets browser. ![PostProcessingTool](../../../post\_process\_asset.jpg)

Drag'n'drop into your scene, once created you can always locate from Navigate window in User Objects section
![PostProcessingTool](/post_process_user_object.jpg)
Drag'n'drop into your scene, once created you can always locate from Navigate window in User Objects section ![PostProcessingTool](../../../post\_process\_user\_object.jpg)

Switch the view to a camera view (or create a new camera if you don't have any camera in the scene).
Select the post process user object and in property view you will get access to its properties to tweak.
![PostProcessingTool](/post_process_user_object_properties.jpg)
Switch the view to a camera view (or create a new camera if you don't have any camera in the scene). Select the post process user object and in property view you will get access to its properties to tweak. ![PostProcessingTool](../../../post\_process\_user\_object\_properties.jpg)

Here you can active the desired effects and the whole effect system in order to see the result in real-time in the viewport.

## Supported drag'n'drop operations

* if you drag camera / light / null, they will connected into Data Camera / Lens Flare Light / DOF Focus Object
* if you drag one post process user object into another, the values from on object will be copied into another one
* if Camera is assigned in a correspondent property of a post process object, then post processing effect become a local, just for a specified camera
* Post procesing effect applies only on user camera and skip any system camera and Perspective as well
* Better to not combine Camera Effects (Antialiasing, Depth Of Field) with post processing effects
`For Antialiasing better to use render option. BUT the option conflicts with Reflection shader, so you will not see reflections!`

* if you drag camera / light / null, they will connected into Data Camera / Lens Flare Light / DOF Focus Object
* if you drag one post process user object into another, the values from on object will be copied into another one
* if Camera is assigned in a correspondent property of a post process object, then post processing effect become a local, just for a specified camera
* Post procesing effect applies only on user camera and skip any system camera and Perspective as well
* Better to not combine Camera Effects (Antialiasing, Depth Of Field) with post processing effects `For Antialiasing better to use render option. BUT the option conflicts with Reflection shader, so you will not see reflections!`

## Default Configuration

Default values for the properties are stored in `My Documents \ MB \ 20xx-x64 \ config`
Name of a configuration file is `< PC Name >.PostProcessing.txt`
Default values for the properties are stored in `My Documents \ MB \ 20xx-x64 \ config`

Name of a configuration file is `< PC Name >.PostProcessing.txt`

## Python tool to tweak post effects properties.
PostProcessingTool.py - you can find in PythonScripts/Startup
![PostProcessingTool](/post_process_tool.jpg)

PostProcessingTool.py - you can find in PythonScripts/Startup ![PostProcessingTool](../../../post\_process\_tool.jpg)

## Effects Common Notes

* DOF and SSAO and any other effect which is using depth buffer could be sensible to camera near/far planes
* GLSL Shader stores value in single float, so please take care about too big values for the far plane

## DOF
In DOF Effect you can manually specify a focal distance.
## DOF

If Null is assigned in the Focus Object Property, Focal distance will be computed automatically.
In DOF Effect you can manually specify a focal distance.

When Use Camera DOF Properties is on, then Focal Distance and Focal Range will be taken from Camera Real-Time effects
If Null is assigned in the Focus Object Property, Focal distance will be computed automatically.

To increase a quality of DOF, try to insrease values for Samples and Rings
When Use Camera DOF Properties is on, then Focal Distance and Focal Range will be taken from Camera Real-Time effects

To increase a quality of DOF, try to insrease values for Samples and Rings

## Lens Flare

PosX and PosY are percent of screen size (width and height)
PosX and PosY are percent of screen size (width and height)

## Post Effects and HUD
The post effects modify the final image, where HUD elements are draw as part of it. In order to recover original HUD, the post process plugin has special feature to emulate the HUD drawing on top of post processed image. That is not a full 100% replication of MotionBuilder HUD system, but it covers most of needs with printing out text, rectangles.

The post effects modify the final image, where HUD elements are draw as part of it. In order to recover original HUD, the post process plugin has special feature to emulate the HUD drawing on top of post processed image. That is not a full 100% replication of MotionBuilder HUD system, but it covers most of needs with printing out text, rectangles.

## Additional features of the plugin
* stream view image via UDP socket (used for virtual camera communication), was designed for a Google Tango tablet - [Introduction To Virtual Camera](https://www.youtube.com/watch?v=WpLeU2rrf_Y)

* stream view image via UDP socket (used for virtual camera communication), was designed for a Google Tango tablet - [Introduction To Virtual Camera](https://www.youtube.com/watch?v=WpLeU2rrf\_Y)
* trigger evaluation of Python Script devices during rendering. That feature is always enabled and it helps to trigger Embedded Python Scripts while running an offline rendering.

## Videos about the plugin:
* [Introduction Video from a live stream](https://www.youtube.com/watch?v=sgzunIbNcp4&t=4887s)
* [Update with new features from 2020](https://youtu.be/AOKk90_bzX4)

* [Introduction Video from a live stream](https://www.youtube.com/watch?v=sgzunIbNcp4\&t=4887s)
* [Update with new features from 2020](https://youtu.be/AOKk90\_bzX4)

## Developer Guide

The plugin third party dependencies
* glew
* freetype
* freetype-gl
* bzip2
* libpng
* zlib
The plugin third party dependencies

* glew
* freetype
* freetype-gl
* bzip2
* libpng
* zlib

All library binaries for windows x64 are included in the project folder.
All library binaries for windows x64 are included in the project folder.

## LOG

### 17.09.2019
+ fixed depth attenuation for multi lights lens flare

* fixed depth attenuation for multi lights lens flare

### 09.04.2018
+ motion blur effect

* motion blur effect

### 23.03.2018
+ upper/lower clip
+ displacement effect

* upper/lower clip
* displacement effect

### 13.02.2018
More testing, skip post processing for manipulators, emulate HUD elements to draw them on top

More testing, skip post processing for manipulators, emulate HUD elements to draw them on top

### 31.01.2018
First Beta
finished SSAO (added linearize pre-pass and bilateral blur, mix passes, fix some bugs)

First Beta finished SSAO (added linearize pre-pass and bilateral blur, mix passes, fix some bugs)

### 30.01.2018
Updated SSAO with HBAO algorithm

Updated SSAO with HBAO algorithm

### 29.01.2018
Create UI Tool, fixed many bugs and issues
Added DOF, SSAO in progress

Create UI Tool, fixed many bugs and issues Added DOF, SSAO in progress

### 25.01.2018
Added Lens Flare Effect
Added Film Grain Effect

Added Lens Flare Effect Added Film Grain Effect

### 23.01.2018
First build

First build
41 changes: 20 additions & 21 deletions docs/plugins/plugins/shader_superdynamiclighting.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
# Super Dynamic Lighting Shader

This is an advance version of Dynamic Lighting Shader with features like vertex displacement, specular map, Matcap shading, etc.

Shader that supports unlimited set of lights in the scene.

Additional features
- texture channels: diffuse, transparency, specular, reflect, displacement, normal map
- rim lighting
- vertex displacement
- reflection spherical texturing
- second UV set support and assigned LightMap texture per model
- matcap diffuse shading

## How to use second UV set and baked shadows

[Video on Youtube](https://youtu.be/ILbo5VWHVTE?si=0_cpQJcIU0AALap6)

## Where to get matcap images ?

[Here is a huge collection of matcaps on github repository](https://github.com/nidorx/matcaps)
# Super Dynamic Lighting Shader

This is an advanced version of the Dynamic Lighting Shader, featuring vertex displacement, specular mapping, MatCap shading, and more. The shader supports an unlimited number of lights in the scene.

Additional features:

* Texture channels: diffuse, transparency, specular, reflection, displacement, and normal map
* Rim lighting
* Vertex displacement
* Reflection spherical texturing
* Support for a second UV set with assigned LightMap textures per model
* MatCap diffuse shading

## How to use second UV set and baked shadows

[Video on Youtube](https://youtu.be/ILbo5VWHVTE?si=0\_cpQJcIU0AALap6)

## Where to get matcap images ?

[Here is a huge collection of matcaps on github repository](https://github.com/nidorx/matcaps)
Loading

0 comments on commit c18493a

Please sign in to comment.