Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add KHR_interactivity draft #2293

Draft
wants to merge 42 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2070215
Add KHR_interactivity intro
lexaknyazev Jul 1, 2023
09bd2cf
Add socket descriptions and math nodes
lexaknyazev Oct 2, 2023
151f3ad
Add vector and more arithmetic nodes; editorial changes
lexaknyazev Oct 16, 2023
47c12fa
Add comparison nodes; address feedback
lexaknyazev Oct 23, 2023
736e686
Add special float constants
lexaknyazev Nov 6, 2023
667fdb1
Add matrix and integer nodes; update formatting
lexaknyazev Nov 14, 2023
4b7b4fe
Add a note about math/tan return values
lexaknyazev Jan 22, 2024
866ea7f
Add flow nodes
lexaknyazev Feb 26, 2024
f69bfb1
Address feedback
lexaknyazev Mar 4, 2024
29e8acc
Add flow/throttle
lexaknyazev Mar 4, 2024
6ebb25f
Add flow/delay
lexaknyazev Mar 4, 2024
c63a37f
Address feedback
lexaknyazev Mar 11, 2024
48851d2
Mention flow/delay activations limit
lexaknyazev Mar 11, 2024
86bf693
Add pointer/get and pointer/set
lexaknyazev Mar 11, 2024
71860b8
Add variable/get and variable/set
lexaknyazev Mar 11, 2024
ffd99ef
Adjust flow/throttle error condition
lexaknyazev Mar 25, 2024
3260039
Update delay nodes
lexaknyazev Mar 25, 2024
18e12cc
Clarify delay limits
lexaknyazev Apr 1, 2024
e73bc71
Clarify invalid values for pointer/set
lexaknyazev Apr 8, 2024
38e690f
Add boolean arithmetic nodes
lexaknyazev Apr 8, 2024
8fbc866
Add type conversion nodes
lexaknyazev Apr 8, 2024
b681b0a
Add math/select node
lexaknyazev Apr 8, 2024
9e000b9
Add boolean XOR
lexaknyazev Apr 15, 2024
de89f6a
Add vector and matrix combine/extract nodes
lexaknyazev Apr 21, 2024
6867635
Add pointer/interpolate
lexaknyazev May 13, 2024
32fd170
Typo fixes
lexaknyazev May 13, 2024
19630ba
Adjust min/max/clamp node descriptions
lexaknyazev May 13, 2024
a369436
Add animation control nodes
lexaknyazev Jun 3, 2024
4685e06
Add lifecycle nodes
lexaknyazev Jun 3, 2024
09f1f1d
Add custom event nodes
lexaknyazev Jun 3, 2024
22fecec
Add more intro sections
lexaknyazev Jun 10, 2024
63f5d3d
Add JSON syntax
lexaknyazev Jun 17, 2024
4177adf
Initialize floating-point variables to NaN
lexaknyazev Jun 24, 2024
21e1b4c
Update custom event nodes
lexaknyazev Jun 24, 2024
83aa69c
Align async output flow socket names
lexaknyazev Jun 24, 2024
d873db6
Clarify flow/multiGate randomness
lexaknyazev Jun 24, 2024
86409f3
Fix typo
lexaknyazev Jul 22, 2024
4834fcd
Clarify input value sockets for pointer nodes
lexaknyazev Jul 22, 2024
e33a3bc
Clarify configuration value types
lexaknyazev Jul 22, 2024
fbcf696
Clarify pointer nodes for not mutable pointers
lexaknyazev Jul 22, 2024
11339a0
Add active camera pointers
lexaknyazev Jul 22, 2024
220ca40
Clarify pointer nodes validity
lexaknyazev Jul 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions extensions/2.0/Khronos/KHR_interactivity/Specification.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,48 @@ The graph execution **MAY** be terminated when the amount of pending activations

=== State Manipulation Nodes

==== Custom Variable Access

===== Variable Get

[cols="1h,1,2"]
|===
| Type | `variable/get` | Get a custom variable value
| Configuration
| `int variable` | The custom variable index
| Output value sockets
| `T value` | The custom variable value
|===

This node gets a custom variable value using the variable index provided by the `variable` configuration value. The type `T` is determined by the referenced variable. The variable index **MUST** be non-negative and less than the total number of custom variables, otherwise the node is invalid.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are variables accessed by index instead of by name? It would make more sense to me to set a variable called "money" than one called 27.


This node has no internal state.

===== Variable Set

[cols="1h,1,2"]
|===
| Type | `variable/set` | Set a custom variable value
| Configuration
| `int variable` | The custom variable index
| Input flow sockets
| `in` | The entry flow into this node
| Input value sockets
| `T value` | The new variable value
| Output flow sockets
| `out` | The flow to be activated after the value is set
|===

This node sets a custom variable value using the variable index provided by the `variable` configuration value and the `value` input value. The type `T` is determined by the referenced variable. The variable index **MUST** be non-negative and less than the total number of custom variables, otherwise the node is invalid.

This node has no internal state.

When the `in` input flow is activated:

1. Evaluate the `value` input value.
2. Set the custom variable with the `variable` configuration value index to the `value` input value.
3. Activate the `out` output flow.

==== Object Model Access

===== Pointer Get
Expand Down
Loading