@@ -1037,7 +1037,7 @@ constant constexpr static float ocio_grading_rgbcurve_knots_0[5] = {0., 0.333333
1037
1037
constant constexpr static int ocio_grading_rgbcurve_coefsOffsets_0[8] = {0, 12, -1, 0, -1, 0, -1, 0};
1038
1038
constant constexpr static float ocio_grading_rgbcurve_coefs_0[12] = {0.0982520878, 0.393008381, 0.347727984, 0.08693178, 0.934498608, 1., 1.13100278, 1.246912, 0., 0.322416425, 0.5, 0.698159397};
1039
1039
1040
- float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x)
1040
+ float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x, float identity_x )
1041
1041
{
1042
1042
int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_0[curveIdx * 2];
1043
1043
int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_0[curveIdx * 2 + 1];
@@ -1046,7 +1046,7 @@ float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x)
1046
1046
int coefsSets = coefsCnt / 3;
1047
1047
if (coefsSets == 0)
1048
1048
{
1049
- return x ;
1049
+ return identity_x ;
1050
1050
}
1051
1051
float knStart = ocio_grading_rgbcurve_knots_0[knotsOffs];
1052
1052
float knEnd = ocio_grading_rgbcurve_knots_0[knotsOffs + knotsCnt - 1];
@@ -1092,12 +1092,12 @@ float4 OCIOMain(float4 inPixel)
1092
1092
// Add GradingRGBCurve 'log' forward processing
1093
1093
1094
1094
{
1095
- outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(0, outColor.rgb.r);
1096
- outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(1, outColor.rgb.g);
1097
- outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(2, outColor.rgb.b);
1098
- outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.r);
1099
- outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.g);
1100
- outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.b);
1095
+ outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(0, outColor.rgb.r, outColor.rgb.r );
1096
+ outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(1, outColor.rgb.g, outColor.rgb.g );
1097
+ outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(2, outColor.rgb.b, outColor.rgb.b );
1098
+ outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.r, outColor.rgb.r );
1099
+ outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.g, outColor.rgb.g );
1100
+ outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.b, outColor.rgb.b );
1101
1101
}
1102
1102
1103
1103
return outColor;
@@ -1143,11 +1143,11 @@ struct ocioOCIOMain
1143
1143
ocioOCIOMain(
1144
1144
constant int ocio_grading_rgbcurve_knotsOffsets[8]
1145
1145
, int ocio_grading_rgbcurve_knotsOffsets_count
1146
- , constant float ocio_grading_rgbcurve_knots[60 ]
1146
+ , constant float ocio_grading_rgbcurve_knots[120 ]
1147
1147
, int ocio_grading_rgbcurve_knots_count
1148
1148
, constant int ocio_grading_rgbcurve_coefsOffsets[8]
1149
1149
, int ocio_grading_rgbcurve_coefsOffsets_count
1150
- , constant float ocio_grading_rgbcurve_coefs[180 ]
1150
+ , constant float ocio_grading_rgbcurve_coefs[360 ]
1151
1151
, int ocio_grading_rgbcurve_coefs_count
1152
1152
, bool ocio_grading_rgbcurve_localBypass
1153
1153
)
@@ -1164,7 +1164,7 @@ ocioOCIOMain(
1164
1164
{
1165
1165
this->ocio_grading_rgbcurve_knots[i] = ocio_grading_rgbcurve_knots[i];
1166
1166
}
1167
- for(int i = ocio_grading_rgbcurve_knots_count; i < 60 ; ++i)
1167
+ for(int i = ocio_grading_rgbcurve_knots_count; i < 120 ; ++i)
1168
1168
{
1169
1169
this->ocio_grading_rgbcurve_knots[i] = 0;
1170
1170
}
@@ -1180,7 +1180,7 @@ ocioOCIOMain(
1180
1180
{
1181
1181
this->ocio_grading_rgbcurve_coefs[i] = ocio_grading_rgbcurve_coefs[i];
1182
1182
}
1183
- for(int i = ocio_grading_rgbcurve_coefs_count; i < 180 ; ++i)
1183
+ for(int i = ocio_grading_rgbcurve_coefs_count; i < 360 ; ++i)
1184
1184
{
1185
1185
this->ocio_grading_rgbcurve_coefs[i] = 0;
1186
1186
}
@@ -1191,15 +1191,15 @@ ocioOCIOMain(
1191
1191
// Declaration of all variables
1192
1192
1193
1193
int ocio_grading_rgbcurve_knotsOffsets[8];
1194
- float ocio_grading_rgbcurve_knots[60 ];
1194
+ float ocio_grading_rgbcurve_knots[120 ];
1195
1195
int ocio_grading_rgbcurve_coefsOffsets[8];
1196
- float ocio_grading_rgbcurve_coefs[180 ];
1196
+ float ocio_grading_rgbcurve_coefs[360 ];
1197
1197
bool ocio_grading_rgbcurve_localBypass;
1198
1198
1199
1199
// Declaration of all helper methods
1200
1200
1201
1201
1202
- float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x)
1202
+ float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x, float identity_x )
1203
1203
{
1204
1204
int knotsOffs = ocio_grading_rgbcurve_knotsOffsets[curveIdx * 2];
1205
1205
int knotsCnt = ocio_grading_rgbcurve_knotsOffsets[curveIdx * 2 + 1];
@@ -1208,7 +1208,7 @@ float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x)
1208
1208
int coefsSets = coefsCnt / 3;
1209
1209
if (coefsSets == 0)
1210
1210
{
1211
- return x ;
1211
+ return identity_x ;
1212
1212
}
1213
1213
float knStart = ocio_grading_rgbcurve_knots[knotsOffs];
1214
1214
float knEnd = ocio_grading_rgbcurve_knots[knotsOffs + knotsCnt - 1];
@@ -1256,12 +1256,12 @@ float4 OCIOMain(float4 inPixel)
1256
1256
{
1257
1257
if (!ocio_grading_rgbcurve_localBypass)
1258
1258
{
1259
- outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(0, outColor.rgb.r);
1260
- outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(1, outColor.rgb.g);
1261
- outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(2, outColor.rgb.b);
1262
- outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.r);
1263
- outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.g);
1264
- outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.b);
1259
+ outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(0, outColor.rgb.r, outColor.rgb.r );
1260
+ outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(1, outColor.rgb.g, outColor.rgb.g );
1261
+ outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(2, outColor.rgb.b, outColor.rgb.b );
1262
+ outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.r, outColor.rgb.r );
1263
+ outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.g, outColor.rgb.g );
1264
+ outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.b, outColor.rgb.b );
1265
1265
}
1266
1266
}
1267
1267
@@ -1275,11 +1275,11 @@ float4 OCIOMain(float4 inPixel)
1275
1275
float4 OCIOMain(
1276
1276
constant int ocio_grading_rgbcurve_knotsOffsets[8]
1277
1277
, int ocio_grading_rgbcurve_knotsOffsets_count
1278
- , constant float ocio_grading_rgbcurve_knots[60 ]
1278
+ , constant float ocio_grading_rgbcurve_knots[120 ]
1279
1279
, int ocio_grading_rgbcurve_knots_count
1280
1280
, constant int ocio_grading_rgbcurve_coefsOffsets[8]
1281
1281
, int ocio_grading_rgbcurve_coefsOffsets_count
1282
- , constant float ocio_grading_rgbcurve_coefs[180 ]
1282
+ , constant float ocio_grading_rgbcurve_coefs[360 ]
1283
1283
, int ocio_grading_rgbcurve_coefs_count
1284
1284
, bool ocio_grading_rgbcurve_localBypass
1285
1285
, float4 inPixel)
0 commit comments