All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
shadingModePxrRis_rfm_map.h
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 // This table comes from RenderMan for Maya version 20.1
25 // The software does under the hood transformation implementing some Maya native shader nodes
26 // as RIS patter objects. The conversion allows to write in USD a fully working shader graph
27 // We use this table both for export and for import when RIS mode is active.
28 // XXX This should probably live in a xml or json file that can be easily updated without recompile
29 
30 #include "pxr/pxr.h"
31 
32 #include "pxr/base/tf/token.h"
33 
34 #include <utility>
35 #include <vector>
36 
37 
38 PXR_NAMESPACE_OPEN_SCOPE
39 
40 static const std::vector<std::pair<TfToken, TfToken> > _RFM_RISNODE_TABLE = {
41  { TfToken("blendColors", TfToken::Immortal), TfToken("PxrMayaBlendColors", TfToken::Immortal) },
42  { TfToken("bulge", TfToken::Immortal), TfToken("PxrMayaBulge", TfToken::Immortal) },
43  { TfToken("bump2d", TfToken::Immortal), TfToken("PxrMayaBump2d", TfToken::Immortal) },
44  { TfToken("bump3d", TfToken::Immortal), TfToken("PxrMayaBump3d", TfToken::Immortal) },
45  { TfToken("brownian", TfToken::Immortal), TfToken("PxrMayaBrownian", TfToken::Immortal) },
46  { TfToken("checker", TfToken::Immortal), TfToken("PxrMayaChecker", TfToken::Immortal) },
47  { TfToken("clamp", TfToken::Immortal), TfToken("PxrMayaClamp", TfToken::Immortal) },
48  { TfToken("cloth", TfToken::Immortal), TfToken("PxrMayaCloth", TfToken::Immortal) },
49  { TfToken("cloud", TfToken::Immortal), TfToken("PxrMayaCloud", TfToken::Immortal) },
50  { TfToken("condition", TfToken::Immortal), TfToken("PxrCondition", TfToken::Immortal) },
51  { TfToken("contrast", TfToken::Immortal), TfToken("PxrMayaContrast", TfToken::Immortal) },
52  { TfToken("crater", TfToken::Immortal), TfToken("PxrMayaCrater", TfToken::Immortal) },
53  { TfToken("file", TfToken::Immortal), TfToken("PxrMayaFile", TfToken::Immortal) },
54  { TfToken("fluidShape", TfToken::Immortal), TfToken("PxrMayaFluidShape", TfToken::Immortal) },
55  { TfToken("fractal", TfToken::Immortal), TfToken("PxrMayaFractal", TfToken::Immortal) },
56  { TfToken("gammaCorrect", TfToken::Immortal), TfToken("PxrMayaGammaCorrect", TfToken::Immortal) },
57  { TfToken("granite", TfToken::Immortal), TfToken("PxrMayaGranite", TfToken::Immortal) },
58  { TfToken("grid", TfToken::Immortal), TfToken("PxrMayaGrid", TfToken::Immortal) },
59  { TfToken("hairSystem", TfToken::Immortal), TfToken("PxrMayaHair", TfToken::Immortal) },
60  { TfToken("hsvToRgb", TfToken::Immortal), TfToken("PxrMayaHsvToRgb", TfToken::Immortal) },
61  { TfToken("imagePlane", TfToken::Immortal), TfToken("PxrMayaImagePlane", TfToken::Immortal) },
62  { TfToken("layeredTexture", TfToken::Immortal), TfToken("PxrMayaLayeredTexture", TfToken::Immortal) },
63  { TfToken("leather", TfToken::Immortal), TfToken("PxrMayaLeather", TfToken::Immortal) },
64  { TfToken("luminance", TfToken::Immortal), TfToken("PxrMayaLuminance", TfToken::Immortal) },
65  { TfToken("marble", TfToken::Immortal), TfToken("PxrMayaMarble", TfToken::Immortal) },
66  { TfToken("mountain", TfToken::Immortal), TfToken("PxrMayaMountain", TfToken::Immortal) },
67  { TfToken("multiplyDivide", TfToken::Immortal), TfToken("PxrMultiplyDivide", TfToken::Immortal) },
68  { TfToken("noise", TfToken::Immortal), TfToken("PxrMayaNoise", TfToken::Immortal) },
69  { TfToken("place2dTexture", TfToken::Immortal), TfToken("PxrMayaPlacement2d", TfToken::Immortal) },
70  { TfToken("place3dTexture", TfToken::Immortal), TfToken("PxrMayaPlacement3d", TfToken::Immortal) },
71  { TfToken("plusMinusAverage", TfToken::Immortal), TfToken("PxrMayaPlusMinusAverage", TfToken::Immortal) },
72  { TfToken("ramp", TfToken::Immortal), TfToken("PxrMayaRamp", TfToken::Immortal) },
73  { TfToken("remapColor", TfToken::Immortal), TfToken("PxrMayaRemapColor", TfToken::Immortal) },
74  { TfToken("remapHsv", TfToken::Immortal), TfToken("PxrMayaRemapHsv", TfToken::Immortal) },
75  { TfToken("remapValue", TfToken::Immortal), TfToken("PxrMayaRemapValue", TfToken::Immortal) },
76  { TfToken("reverse", TfToken::Immortal), TfToken("PxrMayaReverse", TfToken::Immortal) },
77  { TfToken("rgbToHsv", TfToken::Immortal), TfToken("PxrMayaRgbToHsv", TfToken::Immortal) },
78  { TfToken("rock", TfToken::Immortal), TfToken("PxrMayaRock", TfToken::Immortal) },
79  { TfToken("setRange", TfToken::Immortal), TfToken("PxrMayaSetRange", TfToken::Immortal) },
80  { TfToken("snow", TfToken::Immortal), TfToken("PxrMayaSnow", TfToken::Immortal) },
81  { TfToken("solidFractal", TfToken::Immortal), TfToken("PxrMayaSolidFractal", TfToken::Immortal) },
82  { TfToken("stucco", TfToken::Immortal), TfToken("PxrMayaStucco", TfToken::Immortal) },
83  { TfToken("uvChooser", TfToken::Immortal), TfToken("PxrMayaUVChooser", TfToken::Immortal) },
84  { TfToken("volumeFog", TfToken::Immortal), TfToken("PxrMayaVolumeFog", TfToken::Immortal) },
85  { TfToken("volumeNoise", TfToken::Immortal), TfToken("PxrMayaVolumeNoise", TfToken::Immortal) },
86  { TfToken("wood", TfToken::Immortal), TfToken("PxrMayaWood", TfToken::Immortal) }
87 };
88 
89 
90 PXR_NAMESPACE_CLOSE_SCOPE
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:89