1 Star 0 Fork 0

NicoMaki/gigi

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
gigischema.json 99.43 KB
一键复制 编辑 原始数据 按行查看 历史
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "gigischema.json",
"type": "object",
"properties": {
"name": {
"description": "The name of the render graph.",
"type": "string"
},
"comment": {
"description": "Put author information, links, etc here.",
"type": "string"
},
"version": {
"description": "The gigi version of the render graph.",
"type": "string"
},
"variables": {
"description": "The render graph variables. Used for getting parameters from the host app and user. Can be referenced by many things in the render graph such as texture size and shader constants.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
},
"comment": {
"description": "A comment for the variable.",
"type": "string"
},
"type": {
"description": "The type of the variable",
"type": "string",
"enum": ["Int", "Int2", "Int3", "Int4", "Uint", "Uint2", "Uint3", "Uint4", "Float", "Float2", "Float3", "Float4", "Bool", "Float4x4", "Uint_16", "Count"]
},
"Const": {
"description": "If true, the variable is declared const and cannot change at runtime",
"type": "boolean"
},
"Static": {
"description": "If true, the variable has the same value for all instances of the technique",
"type": "boolean"
},
"dflt": {
"description": "The default value of the variable. The default memory is zero initialized before this is parsed, so if you don't give it enough initializers, it will use zero for the unlisted fields.",
"type": "string"
},
"visibility": {
"description": "Who can see and interact with this variable",
"type": "string",
"enum": ["Internal", "Host", "User", "Count"]
},
"Enum": {
"description": "Integer types can specify an enum, which will then make symbols in both C++ and shader code.",
"type": "string"
},
"backends": {
"description": "This variable can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"transient": {
"description": "If true, the variable should not be saved between runs of this technique. The Gigi viewer uses this to decide if it should save it in the gguser file or not, for example.",
"type": "boolean"
},
"UISettings": {
"description": "UI Settings.",
"type": "object",
"properties": {
"UIHint": {
"description": "Any hints for UI",
"type": "string",
"enum": ["Button", "Color", "Drag", "Slider", "Angle", "Count"]
},
"min": {
"description": "The minimum value of the variable. Leave blank for no minimum.",
"type": "string"
},
"max": {
"description": "The maximum value of the variable. Leave blank for no maximum.",
"type": "string"
},
"step": {
"description": "The step size of the variable. Leave blank for default step size.",
"type": "string"
}
}
},
"UIGroup": {
"description": "Used to organize variables into folders in the viewer. separate folders with dots. For instance: settings.controls",
"type": "string"
},
"UIHint": {
"description": "Any hints for UI",
"type": "string",
"enum": ["Button", "Color", "Drag", "Slider", "Angle", "Count"]
}
}
}
},
"shaders": {
"description": "The shaders used by the render graph.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the shader, as it will be referenced by nodes",
"type": "string"
},
"fileName": {
"description": "The file name of the shader file.",
"type": "string"
},
"type": {
"description": "The type of shader it is",
"type": "string",
"enum": ["Compute", "RTRayGen", "RTClosestHit", "RTAnyHit", "RTIntersection", "RTMiss", "Vertex", "Pixel", "Amplification", "Mesh", "Count"]
},
"entryPoint": {
"description": "The shader entrypoint.",
"type": "string"
},
"defines": {
"description": "The defines the shader is compiled with.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the define.",
"type": "string"
},
"value": {
"description": "The value of the define.",
"type": "string"
}
}
}
},
"CSNumThreads": {
"description": "For compute shaders only, the number of threads each dispatch has. 61,1,1 suggested for 1d. 8,8,1 for 2d. 4,4,4 for 3d.",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"NumThreads": {
"description": "The number of threads each dispatch has, for applicable shader types. 64,1,1 suggested for 1d. 8,8,1 for 2d. 4,4,4 for 3d.",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"copyFile": {
"description": "if false, will not copy the file over. A hackaround for when you have multiple raytracing shaders in the same file. TODO: resolve this better.",
"type": "boolean"
},
"slangOptions": {
"description": "Settings for optionally processing shaders with slang",
"type": "object",
"properties": {
"process": {
"description": "if true, this shader will be processed by slang",
"type": "boolean"
}
}
},
"backends": {
"description": "The backends this file copy happens for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"resources": {
"description": "SRVs, UAVs etc. that the shader wants to access. Generates code into the shader for their declarations.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the resource in the shader",
"type": "string"
},
"type": {
"description": "The resource type",
"type": "string",
"enum": ["Texture", "Buffer", "ConstantBuffer", "Count"]
},
"access": {
"description": "How the resource is accessed",
"type": "string",
"enum": ["UAV", "SRV", "CBV", "CopySource", "CopyDest", "Indirect", "RTScene", "VertexBuffer", "IndexBuffer", "RenderTarget", "DepthTarget", "Barrier", "ShadingRate", "Count"]
},
"buffer": {
"description": "Data specific to buffers",
"type": "object",
"properties": {
"type": {
"description": "The data type of the buffer if a simple type",
"type": "string",
"enum": ["Int", "Int2", "Int3", "Int4", "Uint", "Uint2", "Uint3", "Uint4", "Float", "Float2", "Float3", "Float4", "Bool", "Float4x4", "Uint_16", "Count"]
},
"typeStruct": {
"description": "The data type of the buffer if a struct type",
"type": "object",
"properties": {
"name": {
"description": "The name of the struct.",
"type": "string"
}
}
},
"raw": {
"description": "If true, will be viewed raw in the shader (E.g. DX12 ByteAddressBuffer)",
"type": "boolean"
},
"PODAsStructuredBuffer": {
"description": "Set this to true if you want it to be StructuredBuffer instead of a Buffer, for non structure typed buffers.",
"type": "boolean"
}
}
},
"texture": {
"description": "Data specific to textures",
"type": "object",
"properties": {
"dimension": {
"description": "The dimensionality of the texture",
"type": "string",
"enum": ["Texture2D", "Texture2DArray", "Texture3D", "TextureCube"]
},
"viewType": {
"description": "The dimensionality of the texture",
"type": "string",
"enum": ["Int", "Int4", "Uint", "Uint4", "Float", "Float2", "Float3", "Float4"]
}
}
},
"backends": {
"description": "The backends this resource is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"samplers": {
"description": "SRVs, UAVs etc. that the shader wants to access. Generates code into the shader for their declarations.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the resource in the shader",
"type": "string"
},
"filter": {
"description": "The type of filtering to do",
"type": "string",
"enum": ["MinMagMipPoint", "MinMagLinear_MipPoint", "MinMagMipLinear", "Count"]
},
"addressMode": {
"description": "The sampling address mode",
"type": "string",
"enum": ["Clamp", "Wrap", "Border", "Count"]
}
}
}
},
"constantBuffers": {
"description": "A list of constant buffers this shader wants.",
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceName": {
"description": "The name of the resource in the shader",
"type": "string"
},
"structName": {
"description": "The name of the struct used",
"type": "string"
}
}
}
}
}
}
},
"structs": {
"description": "The structs used by the render graph.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the struct.",
"type": "string"
},
"forceHostVisible": {
"description": "If true, the struct will be visible to the host, even if the struct isn't used by anything host visible.",
"type": "boolean"
},
"fields": {
"description": "The data fields",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the field",
"type": "string"
},
"type": {
"description": "The type of the field",
"type": "string",
"enum": ["Int", "Int2", "Int3", "Int4", "Uint", "Uint2", "Uint3", "Uint4", "Float", "Float2", "Float3", "Float4", "Bool", "Float4x4", "Uint_16", "Count"]
},
"dflt": {
"description": "The default value",
"type": "string"
},
"comment": {
"description": "A comment to explain the field",
"type": "string"
},
"Enum": {
"description": "Integer types can specify an enum, which will then make symbols in both C++ and shader code.",
"type": "string"
},
"semantic": {
"description": "Used to specify if the struct field has special meaning, such as a vertex position in a vertex buffer. If none is given, it shows up in shaders as an autonumbering text coordinate.",
"type": "string",
"enum": ["Position", "Color", "Normal", "Tangent", "UV", "MaterialID", "ShapeID", "Count"]
},
"semanticIndex": {
"description": "Some semantics can have multiple channels, like UVs and colors",
"type": "integer"
}
}
}
},
"definition": {
"description": "The parsed string definition of the struct.",
"type": "string"
}
}
}
},
"fileCopies": {
"description": "Files to copy during the building process.",
"type": "array",
"items": {
"type": "object",
"properties": {
"fileName": {
"description": "The file to copy.",
"type": "string"
},
"type": {
"description": "The type of file it is",
"type": "string",
"enum": ["Private", "Shader", "Asset", "Count"]
},
"destFileName": {
"description": "If empty, uses fileName",
"type": "string"
},
"backends": {
"description": "The backends this file copy happens for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"binary": {
"description": "If false, it will be treated as a text file, undergo string replacement, and line ending normalization. If true, it will be copied without modification.",
"type": "boolean"
},
"plural": {
"description": "If true, this file copy is a file pattern for possibly several files to copy. The filename should contain a %i and all files from 0 to N at that location in the file name will be copied.",
"type": "boolean"
}
}
}
},
"nodes": {
"description": "The render graph nodes.",
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceBuffer": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"transient": {
"description": "A non transient resource will persist across executions and frames. A transient resource may not, and is decided by the backend as a potential optimization opportunity.",
"type": "boolean"
},
"visibility": {
"description": "Who can see the buffer and who owns it",
"type": "string",
"enum": ["Imported", "Internal", "Exported", "Count"]
},
"format": {
"description": "The format of the texture.",
"type": "object",
"properties": {
"node": {
"description": "This node's format is used, if specified",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"structureType": {
"description": "The buffer type, if it is a structured buffer",
"type": "object",
"properties": {
"name": {
"description": "The name of the struct.",
"type": "string"
}
}
},
"type": {
"description": "The buffer type. May become a typed or structured buffer, depending on the type chosen.",
"type": "string",
"enum": ["Int", "Int2", "Int3", "Int4", "Uint", "Uint2", "Uint3", "Uint4", "Float", "Float2", "Float3", "Float4", "Bool", "Float4x4", "Uint_16", "Count"]
}
}
},
"count": {
"description": "How many items are in the buffer.",
"type": "object",
"properties": {
"node": {
"description": "The node referenced, if there is one.",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"variable": {
"description": "The variable referenced, if there is one.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"multiply": {
"description": "",
"type": "integer"
},
"divide": {
"description": "",
"type": "integer"
},
"preAdd": {
"description": "",
"type": "integer"
},
"postAdd": {
"description": "",
"type": "integer"
}
}
}
}
},
"resourceShaderConstants": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"transient": {
"description": "A non transient resource will persist across executions and frames. A transient resource may not, and is decided by the backend as a potential optimization opportunity.",
"type": "boolean"
},
"structure": {
"description": "The structure of the constant buffer.",
"type": "object",
"properties": {
"name": {
"description": "The name of the struct.",
"type": "string"
}
}
},
"setFromVar": {
"description": "Set constant buffer (left) to the value of variable (right) every execution",
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"description": "The name of the field to set",
"type": "string"
},
"variable": {
"description": "The name of the variable to take the value from",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
}
}
}
}
}
},
"resourceTexture": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"transient": {
"description": "A non transient resource will persist across executions and frames. A transient resource may not, and is decided by the backend as a potential optimization opportunity.",
"type": "boolean"
},
"visibility": {
"description": "Who can see the texture and who owns it",
"type": "string",
"enum": ["Imported", "Internal", "Exported", "Count"]
},
"format": {
"description": "The format of the texture.",
"type": "object",
"properties": {
"node": {
"description": "This node's format is used, if specified",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"format": {
"description": "A specific format can be specified",
"type": "string",
"enum": ["Any", "R8_Unorm", "RG8_Unorm", "RGBA8_Unorm", "RGBA8_Unorm_sRGB", "R8_Snorm", "RG8_Snorm", "RGBA8_Snorm", "R8_Uint", "RG8_Uint", "RGBA8_Uint", "R8_Sint", "RG8_Sint", "RGBA8_Sint", "R16_Float", "RG16_Float", "RGBA16_Float", "RGBA16_Unorm", "RGBA16_Snorm", "R32_Float", "RG32_Float", "RGBA32_Float", "R32_Uint", "RGBA32_Uint", "R11G11B10_Float", "D32_Float", "D16_Unorm", "D32_Float_S8", "D24_Unorm_S8", "BC7_Unorm", "BC7_Unorm_sRGB"]
},
"variable": {
"description": "The variable that holds the texture format. Assumed to be a uint32.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
}
}
},
"size": {
"description": "The size of the texture.",
"type": "object",
"properties": {
"node": {
"description": "The node referenced, if there is one.",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"variable": {
"description": "If a variable is given, the size will be based on the value of the variable",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"multiply": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"divide": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"preAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"postAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
}
}
},
"numMips": {
"description": "The number of mips the texture should have. 0 means the full set. 1 means just the full size image, and no smaller mips.",
"type": "integer"
},
"dimension": {
"description": "The dimensionality of the texture",
"type": "string",
"enum": ["Texture2D", "Texture2DArray", "Texture3D", "TextureCube"]
}
}
},
"actionComputeShader": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"shader": {
"description": "The shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"dispatchSize": {
"description": "The dispatch size.",
"type": "object",
"properties": {
"node": {
"description": "If a texture or buffer is specified, the dispatch size will be based on the size of the texture or buffer",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"variable": {
"description": "If a variable is given, the dispatch size will be based on the value of the variable",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"indirectBuffer": {
"description": "If given, this buffer will be used as an indirect dispatch buffer",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"multiply": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"divide": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"preAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"postAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"indirectOffsetVariable": {
"description": "If a variable is given, it will be used as the offset into the indirect dispatch buffer. 0 would be the start of the buffer, 1 would start at the 4th value in the buffer, and so on.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"indirectOffsetValue": {
"description": "The offset into the indirect dispatch buffer if no variable given. 0 would be the start of the buffer, 1 would start at the 4th value in the buffer, and so on.",
"type": "integer"
}
}
},
"entryPoint": {
"description": "The shader entrypoint. Overrides the shader entry entryPoint.",
"type": "string"
},
"defines": {
"description": "The defines the shader is compiled with, on top of whatever defines the shader has already",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the define.",
"type": "string"
},
"value": {
"description": "The value of the define.",
"type": "string"
}
}
}
}
}
},
"actionRayShader": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"shader": {
"description": "The ray gen shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"dispatchSize": {
"description": "The dispatch size.",
"type": "object",
"properties": {
"node": {
"description": "If a texture or buffer is specified, the dispatch size will be based on the size of the texture or buffer",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"variable": {
"description": "If a variable is given, the dispatch size will be based on the value of the variable",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"multiply": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"divide": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"preAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"postAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
}
}
},
"entryPoint": {
"description": "The shader entrypoint. Overrides the shader entry entryPoint.",
"type": "string"
},
"defines": {
"description": "The defines the shader is compiled with, on top of whatever defines the shader has already",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the define.",
"type": "string"
},
"value": {
"description": "The value of the define.",
"type": "string"
}
}
}
},
"maxRecursionDepth": {
"description": "The maximum recursion depth of the ray.",
"type": "integer"
},
"rayPayloadSize": {
"description": "The size of the ray payload, in bytes. 64 bytes is four float4s.",
"type": "integer"
}
}
},
"actionCopyResource": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"source": {
"description": "The resource being copied from.",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"dest": {
"description": "The resource being copied to.",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
}
}
},
"actionDrawCall": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"amplificationShader": {
"description": "The amplification shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"meshShader": {
"description": "The mesh shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"vertexShader": {
"description": "The vertex shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"pixelShader": {
"description": "The pixel shader.",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"countPerInstance": {
"description": "If using an index buffer, this is indexCountPerInstance, else is vertexCountPerInstance. If -1, will use the count of the buffer. Else, if a buffer is given, will use min(buffer count, countPerInstance).",
"type": "integer"
},
"instanceCount": {
"description": "How many instances to draw. If -1, will use the count of the instance buffer. Else, if an instance buffer is given, will use min (instance buffer count, instanceCount).",
"type": "integer"
},
"meshShaderDispatchSize": {
"description": "The mesh shader dispatch size.",
"type": "object",
"properties": {
"node": {
"description": "If a texture or buffer is specified, the dispatch size will be based on the size of the texture or buffer",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"variable": {
"description": "If a variable is given, the dispatch size will be based on the value of the variable",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"indirectBuffer": {
"description": "If given, this buffer will be used as an indirect dispatch buffer",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"multiply": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"divide": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"preAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"postAdd": {
"description": "",
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer"
}
},
"indirectOffsetVariable": {
"description": "If a variable is given, it will be used as the offset into the indirect dispatch buffer. 0 would be the start of the buffer, 1 would start at the 4th value in the buffer, and so on.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"indirectOffsetValue": {
"description": "The offset into the indirect dispatch buffer if no variable given. 0 would be the start of the buffer, 1 would start at the 4th value in the buffer, and so on.",
"type": "integer"
}
}
},
"depthTargetClear": {
"description": "If true, clears the depth target before doing a draw call.",
"type": "boolean"
},
"depthTargetClearValue": {
"description": "The value to clear the depth target to.",
"type": "number"
},
"depthWrite": {
"description": "If false, disables writing to the depth buffer",
"type": "boolean"
},
"depthArrayIndex": {
"description": "The array index, for Texture2DArray, Texture3D etc",
"type": "integer"
},
"depthMipLevel": {
"description": "The mip to use",
"type": "integer"
},
"depthTest": {
"description": "",
"type": "string",
"enum": ["Never", "Less", "Equal", "LessEqual", "Greater", "NotEqual", "GreaterEqual", "Always"]
},
"stencilClear": {
"description": "If true, clears the stencil before doing a draw call.",
"type": "boolean"
},
"stencilClearValue": {
"description": "",
"type": "integer"
},
"stencilRef": {
"description": "Sets the reference value for depth stencil tests.",
"type": "integer"
},
"stencilReadMask": {
"description": "",
"type": "integer"
},
"stencilWriteMask": {
"description": "",
"type": "integer"
},
"frontFaceStencilFail": {
"description": "When stencil test fails",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"backFaceStencilFail": {
"description": "When stencil test fails",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"frontFaceStencilDepthFail": {
"description": "When stencil passes but depth fails",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"backFaceStencilDepthFail": {
"description": "When stencil passes but depth fails",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"frontFaceStencilPass": {
"description": "When stencil and depth both pass",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"backFaceStencilPass": {
"description": "When stencil and depth both pass",
"type": "string",
"enum": ["Keep", "Zero", "Replace", "IncrementSaturate", "DecrimentSaturate", "Invert", "Increment", "Decriment"]
},
"frontFaceStencilFunc": {
"description": "How to test stencil data against existing stencil data",
"type": "string",
"enum": ["Never", "Less", "Equal", "LessEqual", "Greater", "NotEqual", "GreaterEqual", "Always"]
},
"backFaceStencilFunc": {
"description": "How to test stencil data against existing stencil data",
"type": "string",
"enum": ["Never", "Less", "Equal", "LessEqual", "Greater", "NotEqual", "GreaterEqual", "Always"]
},
"conservativeRasterization": {
"description": "Turns on conservative rasterization",
"type": "boolean"
},
"alphaAsCoverage": {
"description": "Turns on alpha as coverage",
"type": "boolean"
},
"independentAlpha": {
"description": "If false, colorTargetSettings[0] defines blend mode for all color targets",
"type": "boolean"
},
"colorTargetSettings": {
"description": "Settings for the color targets",
"type": "array",
"minItems": 8,
"maxItems": 8,
"items": {
"type": "object",
"properties": {
"clear": {
"description": "If true, clears the color target before drawing",
"type": "boolean"
},
"clearColor": {
"description": "The color to clear the render target",
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
}
},
"writeChannels": {
"description": "Controls whether R,G,B,A get written or not",
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "boolean"
}
},
"enableBlending": {
"description": "Enables alpha blending",
"type": "boolean"
},
"srcBlend": {
"description": "",
"type": "string",
"enum": ["Zero", "One", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor"]
},
"destBlend": {
"description": "",
"type": "string",
"enum": ["Zero", "One", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor"]
},
"srcBlendAlpha": {
"description": "",
"type": "string",
"enum": ["Zero", "One", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor"]
},
"destBlendAlpha": {
"description": "",
"type": "string",
"enum": ["Zero", "One", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor"]
},
"arrayIndex": {
"description": "The array index, for Texture2DArray, Texture3D etc",
"type": "integer"
},
"mipLevel": {
"description": "The mip to use",
"type": "integer"
}
}
}
},
"defines": {
"description": "The defines the shaders ares compiled with, on top of whatever defines the shaders have already",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the define.",
"type": "string"
},
"value": {
"description": "The value of the define.",
"type": "string"
}
}
}
},
"cullMode": {
"description": "",
"type": "string",
"enum": ["None", "Front", "Back"]
},
"frontIsCounterClockwise": {
"description": "",
"type": "boolean"
},
"shadingRate": {
"description": "For variable rate shading",
"type": "string",
"enum": ["_1x1", "_1x2", "_2x1", "_2x2", "_2x4", "_4x2", "_4x4"]
},
"shadingRateCombiner1": {
"description": "For variable rate shading. This combines the provoking vertex shading rate with the rate set by the command list.",
"type": "string",
"enum": ["PassThrough", "Override", "Min", "Max", "Sum"]
},
"shadingRateCombiner2": {
"description": "For variable rate shading. This combines the image based shading rate with the shading rate set by the command list and provoking vertex.",
"type": "string",
"enum": ["PassThrough", "Override", "Min", "Max", "Sum"]
},
"shadingRateImage": {
"description": "The image used to determine shading rate on the screen. Must be a 2d texture with format R8_Uint.",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"vertexBuffer": {
"description": "The vertex buffer being rendered. If not given, a vertexCount needs to be given.",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"indexBuffer": {
"description": "Index buffer for vertex buffer (Optional).",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"instanceBuffer": {
"description": "Instance buffer (Optional).",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"colorTargets": {
"description": "Color Targets",
"type": "array",
"minItems": 8,
"maxItems": 8,
"items": {
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
}
},
"depthTarget": {
"description": "Depth Target",
"type": "object",
"properties": {
"node": {
"description": "The name of the node",
"type": "string"
},
"pin": {
"description": "The name of the pin",
"type": "string"
}
}
},
"geometryType": {
"description": "What to draw",
"type": "string",
"enum": ["TriangleList", "LineList", "PointList"]
}
}
},
"actionSubGraph": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
},
"fileName": {
"description": "Relative file name",
"type": "string"
},
"subGraphData": {
"description": "A cache of the interface of the other graph.",
"type": "object",
"properties": {
"importedResources": {
"description": "input output pins",
"type": "array",
"items": {
"type": "string"
}
},
"exportedResources": {
"description": "output only pins",
"type": "array",
"items": {
"type": "string"
}
},
"variables": {
"description": "Variables in the subgraph",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "variable name",
"type": "string"
},
"visibility": {
"description": "Who can see and interact with this variable",
"type": "string",
"enum": ["Internal", "Host", "User", "Count"]
}
}
}
}
}
},
"variableSettings": {
"description": "Per variable settings for subgraph variables.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "variable name",
"type": "string"
},
"visibility": {
"description": "Who can see and interact with this variable",
"type": "string",
"enum": ["Internal", "Host", "User", "Count"]
},
"replaceWithStr": {
"description": "If set, the subgraph variable will be deleted and all references will use this parent graph variable instead.",
"type": "string"
},
"replaceWithValue": {
"description": "Replace the variable with a literal value. At gigi compile time it makes an internal private variable of the correct type with this string as the default value.",
"type": "string"
},
"isLoopIndex": {
"description": "If true, this variable will recieve the loop index.",
"type": "boolean"
},
"replaceWith": {
"description": "If set, the subgraph variable will be deleted and all references will use this parent graph variable instead.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
}
}
}
},
"loopCount": {
"description": "Number of times to execute the technique.",
"type": "integer"
},
"loopCountVariable": {
"description": "The variable to use for the loopCount. Only const variables supported currently.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
}
}
},
"actionBarrier": {
"description": "",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
},
"backends": {
"description": "This node can be limited to specific backends",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
},
"comment": {
"description": "A comment about the node which can appear in generated code",
"type": "string"
},
"editorPos": {
"description": "The position of the node in the editor",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
},
"linkProperties": {
"description": "Specify array index / mip level for each pin. Should be same size and order as GetNodePins family of functons.",
"type": "array",
"items": {
"type": "object",
"properties": {
"UAVMipIndex": {
"description": "The mip index to use, if this is a UAV connection.",
"type": "integer"
}
}
}
},
"connections": {
"description": "What is plugged into the pins",
"type": "array",
"items": {
"type": "object",
"properties": {
"srcPin": {
"description": "The name of this pin",
"type": "string"
},
"dstNode": {
"description": "The name of the node",
"type": "string"
},
"dstPin": {
"description": "The name of the pin",
"type": "string"
},
"backends": {
"description": "The backends this connection is present for.",
"type": "object",
"properties": {
"backends": {
"description": "A list of backends supported. Empty list means all backends",
"type": "array",
"items": {
"type": "string",
"enum": ["DX12", "Interpreter"]
}
},
"isWhiteList": {
"description": "If true, this is a list of allowed platforms. if false, it's a list of disallowed platforms.",
"type": "boolean"
}
}
}
}
}
}
}
}
}
}
},
"enums": {
"description": "Enums",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The name of the enum",
"type": "string"
},
"items": {
"description": "The items in the enum. Values start at 0 and count up from there.",
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"description": "The text label of an enum",
"type": "string"
},
"comment": {
"description": "",
"type": "string"
}
}
}
},
"comment": {
"description": "",
"type": "string"
}
}
}
},
"setVars": {
"description": "Variables to modify at the beginning or end of the render graph",
"type": "array",
"items": {
"type": "object",
"properties": {
"destination": {
"description": "The variable to set. destination = A (operator) B.",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"destinationIndex": {
"description": "The index of the field in the destination variable. -1 means no index.",
"type": "integer"
},
"AVar": {
"description": "The variable on the left side of the operator",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"AVarIndex": {
"description": "The index of the field in the A variable. -1 means no index.",
"type": "integer"
},
"ANode": {
"description": "If specified, the size of this resource will be used. AVarIndex will index into it if multi dimensional.",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"ALiteral": {
"description": "The value to use, if no variable is set",
"type": "string"
},
"op": {
"description": "",
"type": "string",
"enum": ["Add", "Subtract", "Multiply", "Divide", "Modulo", "PowerOf2GE", "Minimum", "Maximum", "BitwiseOr", "BitwiseAnd", "BitwiseXor", "BitwiseNot", "Noop"]
},
"BVar": {
"description": "The variable on the right side of the operator",
"type": "object",
"properties": {
"name": {
"description": "The name of the variable.",
"type": "string"
}
}
},
"BVarIndex": {
"description": "The index of the field in the B variable. -1 means no index.",
"type": "integer"
},
"BNode": {
"description": "If specified, the size of this resource will be used. BVarIndex will index into it if multi dimensional.",
"type": "object",
"properties": {
"name": {
"description": "The name of the node",
"type": "string"
}
}
},
"BLiteral": {
"description": "The value to use, if no variable is set",
"type": "string"
},
"setBefore": {
"description": "If true, this happens before execution. If false, happens after execution.",
"type": "boolean"
},
"condition": {
"description": "An optional condition added for the action to happen",
"type": "object",
"properties": {
"variable1": {
"description": "Value 1",
"type": "string"
},
"comparison": {
"description": "The comparison operator",
"type": "string",
"enum": ["IsFalse", "IsTrue", "Equals", "NotEquals", "LT", "LTE", "GT", "GTE", "Count"]
},
"value2": {
"description": "Value 2",
"type": "string"
},
"variable2": {
"description": "Value 2",
"type": "string"
},
"alwaysFalse": {
"description": "If checked, condition always evaluates to false",
"type": "boolean"
}
}
}
}
}
},
"hitGroups": {
"description": "Ray tracing hit group definitions",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "The unique name of the hit group",
"type": "string"
},
"closestHit": {
"description": "The closest hit shader",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"anyHit": {
"description": "The any hit shader",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
},
"intersection": {
"description": "The intersection shader",
"type": "object",
"properties": {
"name": {
"description": "The name of the shader",
"type": "string"
}
}
}
}
}
},
"settings": {
"description": "Backend settings",
"type": "object",
"properties": {
"dx12": {
"description": "",
"type": "object",
"properties": {
"numSRVDescriptors": {
"description": "The number of descriptors in the internal SRV heap",
"type": "integer"
},
"numRTVDescriptors": {
"description": "The number of descriptors in the internal RTV heap",
"type": "integer"
},
"numDSVDescriptors": {
"description": "The number of descriptors in the internal DSV heap",
"type": "integer"
},
"shaderCompiler": {
"description": "The shader compiler to use",
"type": "string",
"enum": ["FXC", "DXC"]
},
"shaderModelCs": {
"description": "The default shader model to use for compute shaders",
"type": "string"
},
"shaderModelVs": {
"description": "The default shader model to use for vertex shaders",
"type": "string"
},
"shaderModelPs": {
"description": "The default shader model to use for pixel shaders",
"type": "string"
},
"shaderModelRayShaders": {
"description": "The default shader model to use for ray shaders",
"type": "string"
},
"shaderModelAs": {
"description": "The default shader model to use for amplification shaders",
"type": "string"
},
"shaderModelMs": {
"description": "The default shader model to use for mesh shaders",
"type": "string"
},
"DXC_HLSL_2021": {
"description": "When using DXC, use HLSL 2021. https://github.com/microsoft/DirectXShaderCompiler/wiki/HLSL-2021",
"type": "boolean"
},
"AgilitySDKRequired": {
"description": "True if the agility SDK is required in DX12. Can be set to true in the editor, but can also be set to true by the compiler.",
"type": "boolean"
}
}
},
"common": {
"description": "",
"type": "object",
"properties": {
"debugNames": {
"description": "If true, sets debug names to GPU objects on available platforms.",
"type": "boolean"
},
"debugShaders": {
"description": "If true, compiles shaders with debug options turned on, on available platforms.",
"type": "boolean"
}
}
}
}
},
"buildSettings": {
"description": "Build settings",
"type": "object",
"properties": {
"disableWarnings": {
"description": "Warnings listed here will be suppressed",
"type": "array",
"items": {
"type": "string",
"enum": ["ShaderUnusedResource", "Count"]
}
},
"outDX12": {
"description": "The output location for DX12",
"type": "string"
}
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/nicomaki/gigi.git
git@gitee.com:nicomaki/gigi.git
nicomaki
gigi
gigi
main

搜索帮助