File tree Expand file tree Collapse file tree 2 files changed +21
-17
lines changed
include/nbl/builtin/hlsl/bxdf Expand file tree Collapse file tree 2 files changed +21
-17
lines changed Original file line number Diff line number Diff line change @@ -170,19 +170,19 @@ struct SCookTorrance
170
170
const vector3_type localH = ndf.generateH (localV, u);
171
171
172
172
cache = anisocache_type::createForReflection (localV, localH);
173
- // struct reflect_wrapper
174
- // {
175
- // vector3_type operator()()
176
- // {
177
- // return r(VdotH);
178
- // }
179
- // bxdf::Reflect<scalar_type> r;
180
- // scalar_type VdotH;
181
- // };
182
- // reflect_wrapper r;
183
- bxdf::Reflect<scalar_type> r = bxdf::Reflect<scalar_type>::create (localV, localH);
184
- // r.VdotH = cache.getVdotH();
185
- ray_dir_info_type localL = localV_raydir.reflect (r);
173
+ struct reflect_wrapper
174
+ {
175
+ vector3_type operator ()() NBL_CONST_MEMBER_FUNC
176
+ {
177
+ return r (VdotH);
178
+ }
179
+ bxdf::Reflect<scalar_type> r;
180
+ scalar_type VdotH;
181
+ };
182
+ reflect_wrapper r;
183
+ r. r = bxdf::Reflect<scalar_type>::create (localV, localH);
184
+ r.VdotH = cache.getVdotH ();
185
+ ray_dir_info_type localL = localV_raydir.template reflect<reflect_wrapper> (r);
186
186
187
187
return sample_type::createFromTangentSpace (localL, interaction.getFromTangentSpace ());
188
188
}
Original file line number Diff line number Diff line change @@ -88,28 +88,32 @@ struct SBasic
88
88
return retval;
89
89
}
90
90
91
- SBasic<T> reflect (NBL_CONST_REF_ARG (Reflect<scalar_type>) r) NBL_CONST_MEMBER_FUNC
91
+ template<typename R=Reflect<scalar_type> >
92
+ SBasic<T> reflect (NBL_CONST_REF_ARG (R) r) NBL_CONST_MEMBER_FUNC
92
93
{
93
94
SBasic<T> retval;
94
95
retval.direction = r ();
95
96
return retval;
96
97
}
97
98
98
- SBasic<T> refract (NBL_CONST_REF_ARG (Refract<scalar_type>) r, scalar_type rcpOrientedEta) NBL_CONST_MEMBER_FUNC
99
+ template<typename R=Refract<scalar_type> >
100
+ SBasic<T> refract (NBL_CONST_REF_ARG (R) r, scalar_type rcpOrientedEta) NBL_CONST_MEMBER_FUNC
99
101
{
100
102
SBasic<T> retval;
101
103
retval.direction = r (rcpOrientedEta);
102
104
return retval;
103
105
}
104
106
105
- SBasic<T> reflectTransmit (NBL_CONST_REF_ARG (Reflect<scalar_type>) r, bool transmitted) NBL_CONST_MEMBER_FUNC
107
+ template<typename R=Reflect<scalar_type> >
108
+ SBasic<T> reflectTransmit (NBL_CONST_REF_ARG (R) r, bool transmitted) NBL_CONST_MEMBER_FUNC
106
109
{
107
110
SBasic<T> retval;
108
111
retval.direction = hlsl::mix (r (), -direction, transmitted);
109
112
return retval;
110
113
}
111
114
112
- SBasic<T> reflectRefract (NBL_CONST_REF_ARG (ReflectRefract<scalar_type>) rr, bool transmitted, scalar_type rcpOrientedEta) NBL_CONST_MEMBER_FUNC
115
+ template<typename R=ReflectRefract<scalar_type> >
116
+ SBasic<T> reflectRefract (NBL_CONST_REF_ARG (R) rr, bool transmitted, scalar_type rcpOrientedEta) NBL_CONST_MEMBER_FUNC
113
117
{
114
118
SBasic<T> retval;
115
119
retval.direction = rr (transmitted, rcpOrientedEta);
You can’t perform that action at this time.
0 commit comments